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

时间:2016-12-15 06:49:33

标签: asp.net asp.net-mvc security asp.net-mvc-3 cookies

我的应用程序(MVC3)允许用户在表单上上传文档。上传后,匿名用户可以通过访问URL中包含文档ID和请求ID的链接来访问这些文档。

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

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

在MVC3中,实现会话cookie的所有可能方法是什么。如果有其他可能的方式,我真的很感激。

1 个答案:

答案 0 :(得分: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);
}