全局图片防盗链处理

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

posted on 2015-05-06 08:56  雄鹰阿明  阅读(182)  评论(0)    收藏  举报

导航