第一步 : 实现 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 >