防止对已上传的文档URL进行未经身份验证的访问 - MVC

问题描述:

我的应用程序(MVC3)允许用户在表单上上传文档。一旦上传,通过访问URL中包含文档ID和请求ID的链接,匿名用户可以访问这些文档。防止对已上传的文档URL进行未经身份验证的访问 - MVC

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

需要通过要求身份验证的用户的会话cookie,以确保未经授权的访问上传文档的URL。

在MVC3中,实现会话cookie的所有可能方式是什么?我非常感谢,如果有其他可能的方式。

+0

我觉得文件的下载只能通过控制器的行动,而不是由文件URL进行处理。所以,如果你的动作被固定,然后你的文件也被固定。请参考链接 - http://www.c-sharpcorner.com/UploadFile/65794e/uploading-and-downloading-in-mvc/以适当的方式实现上传/下载 – Nirman

为了保证文件的下载,您需要通过操作来控制它。 所以你必须创建一个控制器传递文件的名称,并通过它可以发回二进制数据。

例如:

[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); 
}