asp.net httpHandler无法拦截aspx页面,其他的正常

打野的小妞 2018-12-11 11:06:17
<system.webServer>
<handlers>
<add verb="*" path="*.aspx" name="proinfo" type="Test.TestHandler,Test"/>
<add verb="*" path="*.aspx1" name="proinfo1" type="Test.TestHandler,Test"/>
</handlers>
</system.webServer>

拦截aspx不行,aspx1却可以,两个调用的是同一个handler
测试的时候把第二个配置去掉,只留下aspx的也不行
IIS发布后,也拦不住...
很奇怪的一个问题

...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2018-12-14
  • 打赏
  • 举报
回复
你先了解下生命周期吧.. Handler是不行的 要用modules.

 <modules>
      <add name="MyHttpFilter" type="xxxxx.HttpFilter"/>
 </modules>

public class HttpFilter : IHttpModule
{
public void Dispose()
        {

        }
public void Init(HttpApplication context)
        {
            context.BeginRequest += context_BeginRequest;
            context.EndRequest += context_EndRequest;
        }

}
void context_BeginRequest(object sender, EventArgs e)
{
 var application = sender as HttpApplication;
            var context = application.Context;
            var request = context.Request;
            var response = context.Response;
            var fidder = new string[2] { "ashx", "aspx" };
            try
            {
                var path = request.Path.ToLower().Split('.')[1];
                if (fidder.Contains(path) && !request.Path.Contains("OAuth"))
                {
                    
                     //你的逻辑代码
                }
            }
            catch (Exception)
            {

            }
}
void context_EndRequest(object sender, EventArgs e)
        {
        }
MXHai123 2018-12-11
  • 打赏
  • 举报
回复
额。用httpHandler拦截页面???httpHandler是请求的终点啊。这时候拦截已经晚了
EdsionWang 2018-12-11
  • 打赏
  • 举报
回复
试试path="?*.aspx" 另外发你的handler代码出来看看

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧