2016-12-30 13 views
0

Для страницы я могу проверить, зарегистрирован ли пользователь с помощью сеанса перед тем, как отобразить страницу для моего веб-приложения .net. Однако, если URL-адрес является ссылкой на файл, я не могу убедиться, что пользователь зарегистрирован и он напрямую загружает файл с сервера. Я пытался проверить cookie или сеанс над Global.asax без успеха.Проверка наличия cookie или сеанса перед предоставлением доступа к файлу в веб-приложении asp.net

Редактировать: Я не ищу проверку подлинности на сервере, а скорее через сеанс. У меня есть логины пользователей в базе данных, поэтому я думаю, что решение web.config не будет применяться здесь.

Можно ли проверить сеанс или файл cookie, прежде чем пользователь сможет получить доступ к файлу на моем сервере или к любому URL-адресу в определенном каталоге, таком как/документы?

Пример: для доступа к странице /test.aspx, я могу проверить, существует ли сеанс, а если нет, перейдите на страницу входа.

Для доступа к файлу, например /docs/file.pdf, я не могу выполнить ту же проверку.

+0

Возможный дубликат [Как предотвратить прямой доступ к файлам и папкам в asp.net?](http://stackoverflow.com/questions/26968328/how-to-prevent-direct-access-to-files-and -folders-in-asp-net) – Xiaoy312

+1

Файлы cookie хранятся на клиентском компьютере, и это простой текстовый файл, который очень легко модифицируется злоумышленником; поэтому файлы cookie не являются безопасным местом для хранения любых секретных данных безопасности. Никогда не пытайтесь использовать файлы cookie для контроля доступа. – Sparrow

ответ

0

Я не уверен, как пользователь получает имя файла в URL-адресе на первом месте. Возможно, это нужно изменить. Если вы можете добавить таблицу и сохранить GUID и имя файла в таблице, тогда url может передать GUID в качестве параметра. На стороне сервера вы можете сопоставить GUID с фактическим файлом и проверить сеанс перед возвратом файла.

+0

Файлы похожи на /docs/file.pdf, и пользователь может просто ввести URL-адрес в браузер, который я хочу предотвратить. Вот почему я ищу решение, чтобы направлять их для входа в систему перед обращением к URL-адресу. Решение GUID сделает его, к сожалению, очень сложным. –