我的应用程序(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的所有可能方法是什么。如果有其他可能的方式,我真的很感激。
答案 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);
}