全局图片防盗链处理

概念:防盗链是指用户不经过我们的网站直接访问我们的图片  我们给他一个错误的图片处理
原理:获取当前与上一次请求的url   对其进行网站域名与端口号比较  如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片
过程:
1、新建一个一般处理程序处理
2、在webconfiguration中添加httpHandlers节点信息
 
public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType="image/jpeg";
        //当前请求
        Uri url = context.Request.Url;
        //上一次请求
        Uri referrer = context.Request.UrlReferrer;
        if (CompareUrl(url,referrer))
        {
            //合法
            //string path = context.Request.MapPath(context.Request.RawUrl);
            context.Response.WriteFile(url.AbsoluteUri);
        }
        else
        {
            string path = context.Request.MapPath("daolian.jpg");
            context.Response.WriteFile(path);
        }
    }
 
    private bool CompareUrl(Uri u1, Uri u2)
    {
        return Uri.Compare(u1, u2, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.CurrentCultureIgnoreCase) == 0;
    }
一般处理文件
 <system.web>
       <httpHandlers>
      //此处的type中全写  第一个参数是 命名空间+类 第二个参数是程序集名称  path为访问哪个文件夹中的文件 
        <add verb="*" type="FangDaoLian" path="images/*.jpg"/>
      </httpHandlers>
 </system.web>
Webconfig

 

posted on 2015-05-09 00:25  雄鹰阿明  阅读(121)  评论(1编辑  收藏  举报

导航