NET 防盗链的实现[HttpHandler] 有时我们需要防止其他网站直接引用我们系统中的图片,或下载文件链接
需要禁止盗链
NET 中可以方便的实现该功能
做一个简单的盗链图片的示例,如下
新建立一个 WebApplcation
新建立一个 images 文件夹,里面二张 jpg 图片,一张 logo
jpg 正常图片,一张用于提示非法盗链的图片Error
页面 default
aspx 页面很简单
就一个图片如下 这里使用HttpHandler 来处理盗链问题 新建立一个 一般处理程序 Handler1
代码及注释如下 public void ProcessRequest(HttpContext context) { //判断是否是本地网站引用图片,如果是则返回正确的图片 if (context
Request
UrlReferrer
Host == "localhost") { //设置客户端缓冲时间过期时间为 0,即立即过期 context
Response
Expires = 0; //清空服务器端为此会话开启的输出缓存 context
Response
Clear(); //设置输出文件类型 context
Response
ContentType = "image/jpg"; //将请求文件写入到输出缓存中 context
Response
WriteFile(context
Request
PhysicalPath); //将输出缓存中的信息传送到客户端 context
Response
End(); } //如果不是本地引用,则是盗链本站图片 else { //设置客户端缓冲时间过期时间为0,即立即过期 context
Response
Expires = 0; //清空服务器端为此会话开启的输出缓存 con