ImageProtect(图片防盗链)

简介:

1,ImageProtect.cs

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;



//<system.web>
//      <httpHandlers>
//        <add verb="*" path="Download/*.jpg" type="ImageProtect"/>
//      </httpHandlers>
//    </system.web>

/// <summary>
///ImageProtect 的摘要说明
/// </summary>
public class ImageProtect:IHttpHandler
{
    public ImageProtect()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }



    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        //判断是否本地引用,如果是则返回给客户端正确的图片
        if (context.Request.UrlReferrer.Host == "image.eduask.com" && context.Request.UrlReferrer.Port == 80)
        {
            //设置客户端缓冲文件过期时间为0,即立即过期
            context.Response.Expires = 0;
            //清空服务器端为此会话开辟输出的缓存
            context.Response.Clear();
            //获得文件类型
            context.Response.ContentType = "image/jpeg";
            //将请求的文件写入服务器端为此会话开辟输出缓存中
            context.Response.WriteFile(context.Request.PhysicalPath);
            //将服务器端为此会话开辟的输出缓存中的信息返回客户端
            context.Response.End();

        }
        //如果不是否本地引用,则属于盗连引用,返回给客户端错误的图片
        else
        {
            //设置客户端缓冲文件过期时间为0,即立即过期
            context.Response.Expires = 0;
            //清空服务器端为此会话开辟输出的缓存
            context.Response.Clear();
            //获得文件类型
            context.Response.ContentType = "image/jpeg";
            //将特殊的报告错误的图片文件写入到服务器端为此会话开辟输出缓存中
            context.Response.WriteFile("~/images/error.jpg");
            //将服务器端为此会话开辟的输出缓存中的信息返回客户端
            context.Response.End();
        }
    }
}
复制代码

 

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2013/02/16/2878661.html ,如需转载请自行联系原作者
相关文章
|
6月前
|
Docker 容器
80 # 图片防盗链
80 # 图片防盗链
16 0
|
11月前
|
编解码 开发工具 Android开发
.9图片的那点事儿
.9图片的那点事儿
146 0
|
弹性计算 负载均衡 网络协议
源站保护
源站保护
150 0
源站保护
|
Linux 数据安全/隐私保护 Windows
Stegosuite,图片隐写术
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396511 ...
1347 0
|
存储 安全 对象存储
防盗链使用过程中遇到的问题
防盗链使用过程中遇到的问题
173 0
|
Java JavaScript 前端开发
解决图片 防盗链
js版解决方案 var url = 'https://mmbiz.qpic.cn/mmbiz_jpg/TAoksPVlXMI7dQPxiaUbAHvyJ19iaG9b2Ueh53iaqTsn6F8O3m63zcBibgNpujM1HNeCKX99vOo...
1790 0
|
缓存 Android开发
图片
●图片加载,缓存,处理 Picasso (一个强大的图片下载与缓存的库) Fresco (一个用于管理图像和他们使用的内存的库) Glide (一个图片加载和缓存的库,使用的App有:网易新闻) Picasso-transformations (...
1342 0