了解HttpModule与HttpHandler关系
创建第一个网站,附上三张图片
<p>
<img src="images/1.jpg" />
<img src="images/2.jpg" />
<img src="images/3.jpg" />
</p>
创建第二个网站,附加上第一个网站的图片 用的是绝对路径
<p><img src="http://localhost:49297/images/1.jpg" />
<img src="http://localhost:49297/images/2.jpg" />
<img src="http://localhost:49297/images/3.jpg" />
</p>
在第一个网站工程里创建HttpHandler类
public class PreventLink : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
//获取上次请求的URL
Uri lastUrl = context.Request.UrlReferrer;
//获取本次请求的URL
Uri currentUrl = context.Request.Url;
//判断是否为盗链
if (lastUrl.Host != currentUrl.Host || lastUrl.Port != currentUrl.Port)
{
//获取“请勿盗链”的图片路径
string errorImagePath = context.Request.PhysicalApplicationPath + "imagess/5.jpg";
//发送给客户端
context.Response.WriteFile(errorImagePath);
}
else
{
context.Response.WriteFile(context.Request.PhysicalApplicationPath);
}
在Web相关配置文件中加上
<system.webServer>
<handlers>
<add verb="*" path="images/*.jpg" type="WebApplication1.PreventLink" name="plink"/>
</handlers>
</system.webServer>