c# - 如何阻止用户在 .net 中手动输入下载网址

标签 c# asp.net webforms

具体来说,如何设置我的 .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/

相关文章:

c# - Windows 应用程序从包含 XML 数据的网站获取 XML 数据

c# - 通过从 Treeview 拖放到 WinForms 中的文本框来增强功能

asp.net - 用于 asp.net (webforms) 的带有 <optgroup> 的下拉列表控件?

c# - ASP.NET MVC 3 : Possible to just use the V part?

c# - HTML 敏捷包 HtmlDocument 显示所有 Html?

asp.net - 使用 Identity Framework 和 Owin 在 Asp.net Web 表单上拒绝所有未登录的页面

c# - 如何使用 Newtonsoft.Json 反序列化空 JSON 对象?

c# - 获取本地机器上安装的所有证书

c# - 无法从 aspx 页面获取值到 aspx.cs

javascript - 当函数位于外部 javascript 文件中时 onclick 事件不起作用