网站防盗链就是那么简单
第一步 : 实现 IHttpHandler 接口
namespace WebHotlinkProtection
{
public class HotlinkProtectionHandler:IHttpHandler
{
public bool IsReusable
{
get { throw new NotImplementedException(); }
}
public void ProcessRequest(HttpContext context)
{
//监听是否本站发起的请求
if (!context.Request.UrlReferrer.Host.StartsWith("localhost"))
{
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
//输出防盗链图片
context.Response.WriteFile(context.Request.PhysicalApplicationPath + "\\no.jpg");
context.Response.End();
}
else
{
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
context.Response.WriteFile(context.Request.PhysicalPath);
context.Response.End();
}
}
}
}
{
public class HotlinkProtectionHandler:IHttpHandler
{
public bool IsReusable
{
get { throw new NotImplementedException(); }
}
public void ProcessRequest(HttpContext context)
{
//监听是否本站发起的请求
if (!context.Request.UrlReferrer.Host.StartsWith("localhost"))
{
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
//输出防盗链图片
context.Response.WriteFile(context.Request.PhysicalApplicationPath + "\\no.jpg");
context.Response.End();
}
else
{
context.Response.Expires = 0;
context.Response.Clear();
context.Response.ContentType = "image/jpg";
context.Response.WriteFile(context.Request.PhysicalPath);
context.Response.End();
}
}
}
}
第二部:配置web.config
<httpHandlers>
<add verb="*" path="*.jpg" type="WebHotlinkProtection.HotlinkProtectionHandler,WebHotlinkProtection"/>
</httpHandlers>
<add verb="*" path="*.jpg" type="WebHotlinkProtection.HotlinkProtectionHandler,WebHotlinkProtection"/>
</httpHandlers>
一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。