• 给自己的Web文件夹增加一个图片或其它文件认证



    以前见很多网站,在他的网站上面,不论是图片还是软件都可以正常显示或者下载,可是就是不可以"盗版".如果一"盗版"就会显示该网站指定的登录或者错误页面。觉得很神奇的。
    呵呵.现在我们来使用C#来实现这一功能,给自己的网站加上一把锁,让盗版者无处下手。

    首先作的是在IIS中将要处理(暂且这样叫吧)的图片或者软件加入程序处理方式。比如我们要对jpg的图片处理

    打开IIS,打开要处理网站的属性,在主目录中点击配置,在新出来的“应用程序配置”窗口中的“映射”选项卡上面添加应用程序扩展映射。可执行文件与.aspx的可执行文件一样,扩展名,改为“.jpg"(可以根据自己的需要,多添加几种,但要在后面的程序中,作出相应的处理)。动作也改为和.aspx一样。添加成功后,IIS中的设置就算是完成了。

    第二步作的就是要写个DLL文件了。

    新建一个类,这个类一定要实现接口IHttpHandler。其实也就一个方法,一个属性。

     public class Class1:IHttpHandler
     {
      #region IHttpHandler 成员

      public void ProcessRequest(HttpContext context)
      {
       string strFileName = context.Server.MapPath( context.Request.FilePath );

       if( context.Request.ServerVariables["HTTP_REFERER"] == null )
      {
        context.Response.ContentType = "Image/Jpeg";
        context.Response.WriteFile( "/no.jpeg" );
       }
       else if( context.Request.ServerVariables["HTTP_REFERER"].ToUpper().IndexOf(www.myWebSite.com) > 0 )
       {
        context.Response.ContentType = "Image/Jpeg";
        context.Response.WriteFile( strFileName );
       }
       else
       {
        context.Response.ContentType = "Image/Jpeg";
        context.Response.WriteFile( "/no.jpeg" );
       }

      }

      public bool IsReusable
      {
       get
       {
        // TODO:  添加 MyClass.IsReusable getter 实现
        return true;
       }
      }

      #endregion
     }

    将这个类,编译成dll放在bin目录下。当然类也要有命名空间的。

    第三步也就是最后一步,也是最关键的一步。

    在Web.Config文件中增加一个新的节点(如果存在就修改了)

       <httpHandlers>
      <add verb="*" path="*.jpg" type="Class1,WebTestApp" /> //class1是指类名,webtestapp是指dll文件的名字
       </httpHandlers>

    这样,所有关于jpg的访问就都要经过此dll的处理了。如果合格就显示正常的文件,否则呢, 就会显示你指定的图片。
    用同样的方法或者说是思路,可以举一反三,几乎将所有的图片,资源等文件一网打尽!!

    参考文章:http://www.c-sharpcorner.com/UploadFile/Ashish1/CountImageRequestsvb11102005044741AM/CountImageRequestsvb.aspx?ArticleID=bc902a54-16bb-4614-ab35-e6bb2aef8ba9

  • 相关阅读:
    关于HTTP协议,一篇就够了
    jvm在什么情况下会执行GC
    为什么我们做分布式使用Redis?
    linux入门系列
    linux学习笔记-13.进程控制
    linux学习笔记-12.输入输出重定向及管道
    app获取自己的签名
    安卓给微信公众号发消息
    微信扫码下载apk
    设备通道开启关闭状态
  • 原文地址:https://www.cnblogs.com/sxlfybb/p/301516.html
Copyright © 2020-2023  润新知