摘要:概念:防盗链是指用户不经过我们的网站直接访问我们的图片我们给他一个错误的图片处理原理:获取当前与上一次请求的url对其进行网站域名与端口号比较如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片过程:1、新建一个一般处理程序处理2、在webconfiguration中添加httpHandlers节点信息publicvoidProcessRequest(HttpCont
概念:防盗链是指用户不经过我们的网站直接访问我们的图片 我们给他一个错误的图片处理
原理:获取当前与上一次请求的url 对其进行网站域名与端口号比较 如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片
过程:
1、新建一个一般处理程序处理
2、在webconfiguration中添加httpHandlers节点信息
public voidProcessRequest(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 boolCompareUrl(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