• HttpHandler过滤请求..


    记得以前写过一篇..后来找不到了..我自己也忘记怎么弄了..

    在网上找了很多的教程..写的总有瑕疵..感觉不顺畅..

    自己来一篇..

    其实很简单..

    先建立一个类  继承并实现接口 IHttpHandler

    例如:

    namespace MyHandler
    {
        public class ImageH : IHttpHandler
        {
    
            public bool IsReusable
            {
                get { return true; }
            }
    
            public void ProcessRequest(HttpContext context)
            {
           //为了演示..就不再做过多的判断..直接输出一个其他的图片 context.Response.ContentType
    = "image/JPEG"; context.Response.WriteFile("/Content/Image/error.jpg"); //context.Response.Redirect("/Home"); context.Response.End(); } } }

    相信这个类上边没有什么疑问..

    就是添加到任何地方就好..

    然后是在配置文件web.config 里的配置

    很多教程都说是这样配置的

    <system.web>
        <httpHandlers>
          <add path="*.jpg,*.jpeg,*.gif,*.png,*.bmp" verb="*" type="CustomHandler.JpgHandler,CustomHandler" />
        </httpHandlers>
     </system.web>

    但是我不知道是我运气背还是怎滴..总之就是报错.. 说什么集成模式不能运行什么的..MD老子还在VS里运行的那里能调这个..

    后来改成...

    <system.webServer>
        <handlers>
          
          <add name="jpg" path="*.jpg" verb="*" type="MyHandler.ImageH,MyHandler"/>
          <add name="png" path="*.png" verb="*" type="MyHandler.ImageH,MyHandler"/>
          <add name="html" path="*.html" verb="*" type="MyHandler.HtmlH,MyHandler"/>
          
        </handlers>
    </system.webServer>

    可以了..  

    这里边具体是为什么我没有搞明白..希望在以后的某个偶然中搞明白吧..或请路过的大神提点一二..

    也许这配置到了服务器上要改成第一种那样..但是只要保证能够运行就好..

    话说HttpHandler的另外一个作用还可以是实时生成静态页面来提供访问..

    以前做站点静态化都是修改完数据之后自动重新生成..或者手动批量生成..

    如果当时会用HttpHandler的话..就好的多了..

  • 相关阅读:
    【转】sql 如何设计数据库表实现完整的RBAC(基于角色权限控制)
    【转】windows自带终止进程的超强命令
    【源码】 gridview 里使用checkbox
    【转】调用 开始 运行 直接执行命令
    【源码】DropDownList绑定数据
    C++ 编译器数据类型差异
    Flash 中将不透明的 Bitmap 透明化处理
    使用命令行切换IP地址
    MKV 高清视频文件分解与封装和音频编码的转换
    Visual Studio 2010 C++ 用户属性设置
  • 原文地址:https://www.cnblogs.com/iiwen/p/4764079.html
Copyright © 2020-2023  润新知