概念:防盗链是指用户不经过我们的网站直接访问我们的图片 我们给他一个错误的图片处理
原理:获取当前与上一次请求的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>