zoukankan      html  css  js  c++  java
  • 使用HttpHandler来监控HTML页面请求

    最近要实现一个IIS7下的纯HTML页面的请求来源,由于诸多原因: 

    • 多个独立域名绑定到了一个website
    • 域名供应商不支持url forwarding
    • 想达到输入次域名后自动redirect到主域名,如:
    • 输入www.ccc.net后会redirectwww.aaa.com
    • 输入www.ddd.cn后会redirectwww.aaa.com

    所以试着做了个html handler

    步骤:

    1. 设置目标网站的application pool模式为integrate
    2. 编写一个.NET 2.0HttpHandler来处理请求(此处是*.html文件的请求)
    3. public class UrlVerify : IHttpHandler
          {
              public bool IsReusable
              {
                  get { return true; }
              }

              const string mainHostName = "www.aaa.com";
              public void ProcessRequest(HttpContext context)
              {
                  if (context.Request.Url.Host.ToLower() != mainHostName)
                  {
                      string url = GenerateMainSiteUrl(context.Request.Url.AbsoluteUri, context.Request.RawUrl);
                      context.Response.Redirect(url, true);
                  }
                  else
                  {
                      context.Response.WriteFile(context.Request.PhysicalPath);
                  }
              }

              public string GenerateMainSiteUrl(string fullUrl, string virtualPath)
              {
                  string url = fullUrl;
                  string preUrl = "http";
                  if (url.Substring(05).ToLower() == "https")
                      preUrl = "https";

                  virtualPath = virtualPath.TrimStart('/');

                  url = string.Format("{0}://{1}/{2}", preUrl, mainHostName, virtualPath);
                  return url;
              }
          }
    4. 将编译后的dll文件放到目标网站的bin目录中
    5. 打开IIS7,找到目标网站,双击 Handler Mappings 图标
    6. 在右上方click Add Managed Handler链接
    7. OK

    迷惑:

    上述组件是用.net2.0编写的,我用.net4.0也试了一下,但是总是报错,不知道怎么回事,望有经验的兄弟告诉我一下。

  • 相关阅读:
    用SSMS连接Azure Sql Database 与连接本地库的一些操作区别
    python_高级进阶(3)线程
    python_高级进阶(2)进程与并发
    python_高级进阶(1)进程与并发
    python网络(2)_Udp协议
    python网络(2)_Tcp协议
    python网络(1)_认知
    python异常处理
    python面向对象(5)__特殊双下方法
    python面向对象(4)_细分类的组成成员
  • 原文地址:https://www.cnblogs.com/aarond/p/HandlerMapping.html
Copyright © 2011-2022 走看看