查看HttpForbiddenHandler Class 并在您的httpHandlers 设置中使用。
例如
将链接/直接请求限制为仅/files 文件夹中的 PDF 文件 (403)
<system.webServer>
<handlers>
<!-- If you want to restrict all links
<add verb="*" name="RestrictPDFGlobal" path="*.pdf" type="System.Web.HttpForbiddenHandler"/>
-->
<add verb="*" name="RestrictPDF" path="/files/*.pdf" type="System.Web.HttpForbiddenHandler"/>
</handlers>
</system.webServer>
或者,我将设计一个页面,然后我将获得
查询字符串,会话等的文件路径,以便我可以下载文件
我自己。在此页面中,我将检查一些特权。
您可以通过特权访问来做到这一点(下面有趣的注释) - 例如[Authorize]属性
示例,根据需要改进:
在Home 控制器中:
[Authorize]
public FilePathResult DownloadPdf()
{
var cd = new System.Net.Mime.ContentDisposition
{
FileName = "foo.pdf"
};
Response.AppendHeader("Content-Disposition", cd.ToString());
return File("~/files/foo.pdf", "application/pdf");
}
查看:
<p>@Html.ActionLink("PDF Download", "DownloadPdf", "Home")</p>
注意:
这里有趣的事情(我不知道答案)是为什么config中设置的限制“允许”这种方法(我们“手动”通过控制器返回它 ->操作与链接中的“直接”请求)。
第