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 ,如需转载请自行联系原作者
相关文章
|
Web App开发 缓存 JavaScript
手把手教你 WordPress 使用阿里云 CDN 教程,让你的网站飞起来
优化 WordPress 访问速度详细攻略,手把手教你优化过程
9808 0
手把手教你 WordPress 使用阿里云 CDN 教程,让你的网站飞起来
|
11月前
|
缓存 弹性计算 应用服务中间件
如何使用 Wordpress?托管, 网站, 插件, 缓存
如何使用 Wordpress?托管, 网站, 插件, 缓存
|
搜索推荐 UED 索引
WordPress建站入门教程:如何选择和设置固定链接结构?
通过选择一个清晰、有逻辑的固定链接结构,您可以提高网站的SEO能力、确保用户良好的浏览体验,并方便内容管理。在设置时,要充分考虑未来的网站规划和内容结构,以确定最合适的链接形式。
388 1
|
11月前
|
存储 开发工具 对象存储
开发者如何使用对象存储OSS
【10月更文挑战第6天】开发者如何使用对象存储OSS
1990 7
|
存储 弹性计算 人工智能
2024阿里云99计划2核2G服务器99元/年,新购续费都是99元
2024阿里云99计划2核2G服务器99元/年,新购续费都是99元
|
存储 弹性计算 数据库
2024年阿里云优惠券领取和使用教程分享(图文教程)
2024年阿里云优惠券怎么领取?为了助力更多用户优惠上云,也为了让更多用户选择阿里云的云产品完成上云,阿里云公司针对新用户推出了满减优惠券,这款抵扣优惠券也就是大家俗称的满减抵扣券,自领取日30天起内有效。领取和使用优惠券是很多新手用户上云的必领福利,本文为各位新手用户介绍下2024年阿里云优惠券的领取和使用教程。
2869 0
|
存储 边缘计算 网络协议
利用阿里云搭建WordPress网站 – 动静分离和CDN加速
WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。
6407 1
|
6天前
|
人工智能 运维 安全
|
4天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
503 14