当前位置: 首页 > 技术分享  > 开发技术 > 网站运营

ASP.NET图片防盗技术

2015/7/29 10:02:18 人评论

本文通过HttpHandler实现ASP.NET图片防盗技术,非设定网站域名请求图片,输出指定错误图片替换原链接图片。具体步骤:一、在Web.config中注册HttpHandler<httpHandlers><!--映射jpg格式的文件,给ProcessHandler_test.CustomHandler处理。--><!--type里面…

本文通过HttpHandler实现ASP.NET图片防盗技术,非设定网站域名请求图片,输出指定错误图片替换原链接图片。

具体步骤:

一、在Web.config中注册HttpHandler

<httpHandlers>
     <!--映射jpg格式的文件,给ProcessHandler_test.CustomHandler处理。-->
     <!--type里面逗号之前 命名空间加类名(ProcessHandler_test.CustomHandler),后面程序集名称-->
     <add path="*.jpg" verb="*" type="httphander_test.CustomHandler, ProcessHandler_test" />
</httpHandlers>

上面注册是把网站中请求jpg格式文件的请求,映射给命名空间为httphander_test类名为CustomHandler的程序集ProcessHandler_test来处理请求。


二、如果想通过HttpHandler处理请求,需要在映射的处理程序中实现接口IHttpHandler

三、映射到的程序代码如下

namespace httphander_test
{
    public class CustomHandler :IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            // 获取文件服务器端物理路径
            string FileName = context.Server.MapPath(context.Request.FilePath);
            // 如果UrlReferrer为空,则显示一张默认的禁止盗链的图片
            if (context.Request.UrlReferrer.Host == null)
            {
                context.Response.ContentType = "image/gif";
                context.Response.WriteFile("/error.gif");
            }
            else
            {
                // 如果 UrlReferrer中不包含自己站点主机域名,则显示一张默认的禁止盗链的图片
                if (context.Request.UrlReferrer.Host.IndexOf("pcitk.com") > 0)
                {
                    context.Response.ContentType = "image/gif";
                    context.Response.WriteFile(FileName);
                }
                else
                {
                    context.Response.ContentType = "image/gif";
                    context.Response.WriteFile("/error.gif");
                }
            }
        }



        public bool IsReusable
        {
            get { throw new NotImplementedException(); }
        }
    }
}


相关技术

  • 律师函来了-请各大企业主咨询网站管理人员

    客户收到了“至DedeCMS用户的函”,合计金额7800元。这引起了我们的反思...企业主是不懂技术的,更不懂是否有法律风险,贪图便宜请外面的人员做的网站,没想到带来了风险。织梦CMS是开源免费网站系统,已经深入人心,只是随便自家网站发布公告,就采取诉讼手段,确实不太…

    2022/2/8 10:36:11
  • 查看异常端口应用,结束异常进程

    1、 Cmd输入命令:netstat -a -o 查询所有端口和对应PID信息查询对应端口号 netstat –ano|findstr “端口号” ,如netstat –ano|findstr “8080”记下PID,最后一行为PID,这里为396 2,Cmd输入命令:taskkill -f -pid PID号,如taskkill -f -pid 396。

    2015/7/13 15:15:34
  • 5个技巧有效提升网站流量

    网站需要创造价值,如果只是设计得漂亮或者使用华丽酷炫的技术是远远不够的。建站最重要的目的是为了给公司创造效益,如果吸引不到访客…

    2014/9/17 7:57:06
  • 按Ctrl缩放网页功能

    访问部分网站,发现字太小,看不清楚。想起了利用Ctrl+鼠标滚轮进行放大查看。关闭网页后,查看其他网页,字体确变的很大,影响美观。利…

    2014/9/16 12:38:04

共有条评论 网友评论

验证码: 看不清楚?