防止对已上传的文档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的所有可能方式是什么?我非常感谢,如果有其他可能的方式。
答
为了保证文件的下载,您需要通过操作来控制它。 所以你必须创建一个控制器传递文件的名称,并通过它可以发回二进制数据。
例如:
[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);
}
我觉得文件的下载只能通过控制器的行动,而不是由文件URL进行处理。所以,如果你的动作被固定,然后你的文件也被固定。请参考链接 - http://www.c-sharpcorner.com/UploadFile/65794e/uploading-and-downloading-in-mvc/以适当的方式实现上传/下载 – Nirman