2016-12-15 3 views
0

Мое приложение (MVC3) позволяет пользователям загружать свои документы в форме. После загрузки доступ к этим документам доступен анонимным пользователям, посетив ссылку, содержащую идентификатор документа и идентификатор запроса в URL-адресе.Предотвращение неавторизованного доступа к URL-адресам загруженных документов - MVC

Ex: https://myapplication.com/Documents/DownloadDocument/DwldDocumentMethod?DocumentId=fg2ac782-a15a-445a-b0e9-b11344878f28&RequestId=gh998c01-1d27-40b6-9e55-127084ca164b

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

В MVC3, какие все возможные способы реализации сеансового файла cookie. Я действительно ценю, если есть другие возможные способы.

+0

Я думаю, что загрузка файлов должна быть обработана только через действие контроллера, а не файл URL .. Так что, если ваши действия обеспечиваются тогда документ также обеспечен. См. Ссылку - http://www.c-sharpcorner.com/UploadFile/65794e/uploading-and-downloading-in-mvc/ для правильной загрузки/загрузки – Nirman

ответ

3

Чтобы защитить загрузку файла, вам необходимо управлять им действием. Итак, вам нужно создать контроллер, передающий имя файла, и через него вы можете отправить обратно двоичные данные.

, например:

[Authorize(Roles = "RegisteredUser,Admin")] 
public Action DownloadFile(string fileName){ 
    //Read the file: 
    string mimeType = ""; 
    byte[] myFile = ReadMyFile(fileName, out mimeType); 

    return File(myFile,mimeType,fileName); 
}