.NET网站 防止地址栏直接下载文件
使用到的类是IHttpHandler ,也就是每次请求asp.net网站上的TXT和XLS资源的时候,都会由这个类来请求处理
DownloadHandler.cs 的代码如下:
public DownloadHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 指示IHttpHandler 实例是否可再次使用
/// </summary>
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
Uri referrerUri = HttpContext.Current.Request.UrlReferrer;//获取下载之前访问的那个页面的uri
Uri currentUri = HttpContext.Current.Request.Url;
if (referrerUri == null)//没有前导页,直接访问下载页
{
//输出提示,可以根据自身要求完善此处代码
HttpContext.Current.Response.Write("请不要盗链本站资源,请从首页访问。<a href='../index.aspx'>进入首页</a>");
return;
}
}
WEB.config 配置了
<httpHandlers>
<add path="*.txt" verb="*" type="DownloadHandler"/>
<add path="*.xls" verb="*" type="DownloadHandler"/>
</httpHandlers>
别人直接在软件里面打开 我的txt xls 等后缀的文件 就会调用 IHttpHandler 判断是不是直接打开的。是的话不让直接打开 !
在本地测试正常。放到服务器上面。一点用没有。 IHttpHandler 没有被调用。不知道为什么。请高人指点 !