要在一个网站里实现微博个性域名的功能,于是想到了HttpHandler<httpHandlers>
        <add verb="GET,POST" path="*"     type="Mypro.WebHandler" />
</httpHandlers>
但这样访问普通的aspx页面也截获进来了……我的需求是:当访问“wangzhan.com/mingzi”的时候,进行个性域名的处理,其他访问“wangzhan.com/*.aspx”的时候,不做处理如何实现?我加了remove标签,没用,如下:<httpHandlers>
        <add verb="GET,POST" path="*"     type="Mypro.WebHandler" />
        <remove verb="GET,POST" path="*.aspx"/>
</httpHandlers>
C#ASP.NETHttpHandlerHandler个性域名

解决方案 »

  1.   

    你说的是urlRewriter吧,重写成目录形式、二级域名都可以的
    比如一个网站域名是 abc.com ,访问某个用户可以轻松重写为user123.abc.com 或者 abc.com/user123
    对应的真正的页面是abc.com/User.aspx?uid=user123 ,当访问User.aspx?uid=user123理所当然不处理啦
      

  2.   

    你可以在WebHandler 里面去实现啊。。
      

  3.   


    什么WebHandler?是HttpHandler吗?
      

  4.   

    这种短url应该用url重写就可以实现了
    当然LZ这样实现也行
    <httpHandlers>
           <add verb="GET,POST" path="*.aspx"     type="spacename.class.class" />//把aspx的httphandler放前面试试
            <add verb="GET,POST" path="*"     type="Mypro.WebHandler" />//当捕获到这里是继承IHTTPhander重写下渲染页面就行了
    </httpHandlers>
      

  5.   


    当一个aspx访问请求进入了一个handler,要如何忽略?
      

  6.   

    可以看看下面两篇文章,将ihttphander的
    工厂方法模式(Factory Method)
    以工厂方法将的asp.net http通道的原理httpModules 与 httpHandler (asp.net web执行通道)
      

  7.   


    我已经解决了,是用错东西了,应该用Module,不应该用HandlerHandler处理后,进行跳转,因为截获处理所有的请求,所以跳转后的请求又再一次进行了截获