具体来说,如何设置我的 .net 站点以不允许未经身份验证的用户手动输入下载网址并下载内容?
我构建了安全性,要求在下载链接所在的页面上进行身份验证,但如果用户可以访问直接网址,则有人可以直接从该网址下载。是否有一些逻辑或插件可以帮助实现这一点?我将不胜感激任何帮助。
最佳答案
ASP.NET MVC 支持创建“操作过滤器”的功能,该过滤器可用于实现可重复使用的逻辑,并以声明方式应用于操作方法。
[Authorize]
过滤器是 ASP.NET MVC 提供的内置操作过滤器之一,它使开发人员能够以声明方式将授权规则应用于操作方法和 Controller 类。
在此操作中,您可以从磁盘读取文件并将内容流式传输。
示例:
[Authorize(Roles="admin")]
public ActionResult Download()
{
var fileStream = new FileStream(@"c:\PATH\TO\PDF\ON\THE\SERVER.pdf", FileMode.Open);
var mimeType = "application/pdf";
var fileDownloadName = "download.pdf";
return File(fileStream, mimeType, fileDownloadName);
}
或者,对于经典的 ASP.NET 解决方案,请参阅 http://msdn.microsoft.com/en-us/library/879kf95c.aspx
来源:
http://nerddinnerbook.s3.amazonaws.com/Part9.htm
http://blog.janjonas.net/2011-03-17/asp_net-mvc_3-howto-stream-files-client
关于c# - 如何阻止用户在 .net 中手动输入下载网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173669/