确定 HttpModule 主/调用请求

发布于 2024-07-08 00:32:26 字数 100 浏览 5 评论 0原文

有没有办法知道 httpmodule 中的主/调用请求? 我只希望我的模块代码在主 aspx 页面上运行,而不是图像和脚本。 我可以检查“.aspx”的路径,但似乎应该有更好的方法。

Is there a way to know the main/calling request in an httpmodule? I only want my module code to run for the main aspx page, not the images and scripts. I could check the path for ".aspx" but it seems like there should be a better way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的他你的她 2024-07-15 00:32:27

IIS 不会对图像和脚本* 调用 ASP.NET 处理程序,因此 HTTPModule 无论如何都应该只在 ASPX 请求上运行。

  • 除非您指的是作为嵌入式资源提供的脚本,即 webresource.axd。

IIS won't invoke the ASP.NET handler on images and scripts*, so a HTTPModule should only run on ASPX requests anyways.

  • Unless you mean scripts served by as an embedded resource, ie webresource.axd.
心奴独伤 2024-07-15 00:32:26

从您的模块中,您可以调用 HttpContext.Current.Handler 并查看它是否是页面。 您可能必须在 PostMapRequestHandler 事件或生命周期中的后续事件中执行此操作。

或者,也许您可​​以检查哪个 HttpHandlerFactory 正在用于请求。 如果是PageHandlerFactory,则可以运行您的逻辑,否则可以跳过它。

From your module you could call HttpContext.Current.Handler and see if it is a Page. You'd probably have to do this in the PostMapRequestHandler event or a later event in the life cycle.

Alternatively, maybe you can check which HttpHandlerFactory is being used for the request. If it is the PageHandlerFactory, you can run your logic, and otherwise you can skip it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文