• httphandler防图片盗链


    最近学习了一下httphandler的相关知识,做了一个防图片盗链的小例子.

    关于httphandler的基本的介绍和技术原理就不介绍了,请谷歌搜索.

    首先新建一个Asp.net Web 应用程序,命名为HttpHandlerDemo.

    在HttpHandlerDemo中添加Image图片文件夹,放入几张图片,其中一张图片是缺省的图片,一张图片是发生盗链时的图片.

    在解决方案下面添加一个类库项目,命名为CustomHttpHandler.

    在CustomHttpHandler项目中添加CustomHandler.cs代码文件,内容如下:

    View Code

    在HttpHandlerDemo项目中添加对CustomHttpHandler项目的引用.

    在HttpHandlerDemo项目中的Web.config文件中添加如下配置:

    View Code

    修改HttpHandlerDemo项目中Default.aspx页面,代码如下:

    View Code

    这里第二个img的src="http://192.168.3.183/HttpHandlerDemo/Image/girl4.jpg",这个地址是发布到我本机iis后的地址,注意改成你的机器ip或者localhost.

    现在将HttpHandlerDemo项目发布到iis上.

    做完这些步骤,自己写的httphandler还无法发挥作用.需要在iis中添加.jpg的映射,告诉iis如何处理.jpg的请求.

    在HttpHandlerDemo虚拟目录上右键->属性->ASP.NET,查看一下ASP.NET版本,记下版本号.然后选择虚拟目录选项卡,点击右下角的配置->映射->添加,在可执行文件中选择跟你ASP.NET版本相对应的aspnet_isapi.dll,一定要选对版本,如果没选对,httphandler是不会起作用的.比如:

    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,扩展名输入.jpg,然后确定.

    现在浏览HttpHandlerDemo项目中Default.aspx页,可以看到能够正常显示两张图片.如果在浏览器中直接输入图片地址,如

    "http://192.168.3.183/HttpHandlerDemo/Image/girl4.jpg",将会看到防盗链那张图片,如果其他网站引用了这个地址,也会显示防盗链的那张图片.

    代码下载:点击下载

  • 相关阅读:
    解决问题通用方法论
    Flutter 即学即用系列博客总结篇
    Android Q 兼容那些事
    Android 截屏的各种骚操作
    MTLTexture转成UIimage
    swift使用metal加载三角形、平面图片、立体图像
    GPUImage2的使用
    Swift OpenGL ES 自定义常用滤镜(二)
    Swift OpenGL ES 自定义常用滤镜(一)
    Core Image简介与使用
  • 原文地址:https://www.cnblogs.com/xiaobaihome/p/2614933.html
Copyright © 2020-2023  润新知