Asp.net 是否可以在IIS下拦截web请求?

Asp.net 是否可以在IIS下拦截web请求?,asp.net,iis,Asp.net,Iis,我们使用IIS在端口80下部署了一些web服务,如: http://localhost/service1/ http://localhost/service2/ ... 现在我们想对这些服务进行一些统计和身份验证工作,现在我有两个想法: 1.更换每项服务 逐个添加统计和身份验证登录 但我认为这不是一个好主意,因为我们有这么多的应用程序需要更新,而且这些代码被认真地重复 2创建一个单独的应用程序 此应用程序应该可以拦截服务的每个请求,并执行相关的工作。我们可以为这个应用程序添加其他功能 我认为这

我们使用IIS在端口
80
下部署了一些web服务,如:

http://localhost/service1/
http://localhost/service2/
...
现在我们想对这些服务进行一些统计和身份验证工作,现在我有两个想法:

1.更换每项服务

逐个添加统计和身份验证登录

但我认为这不是一个好主意,因为我们有这么多的应用程序需要更新,而且这些代码被认真地重复

2创建一个单独的应用程序

此应用程序应该可以拦截服务的每个请求,并执行相关的工作。我们可以为这个应用程序添加其他功能

我认为这是一种灵活的方式。但我不确定这是否可能

顺便说一句,无法更改已部署服务的url


有什么建议吗?

我认为您最好创建一个HTTP模块,然后将此模块添加到您的应用程序中,这样就可以拦截到托管应用程序的每个请求

从官方网页

HTTP模块是一个程序集,它在对发出的每个请求时都被调用 你的申请。HTTP模块作为ASP.NET的一部分进行调用 请求管道并在整个过程中访问生命周期事件 要求因此,HTTP模块为您提供了检查 传入请求并根据请求采取操作。他们也给予 您将有机会检查出站响应并对其进行修改

有关此主题的更多信息,请访问以下链接:

创建简单HTTP模块的演练

作为拦截调用的同一主题的一部分,我强烈建议您阅读以下文章,描述HTTP处理程序和HTTP模块的各个方面。

更新 根据您的评论,您将需要创建一个ISAPI过滤器,它类似于HTTP模块的描述技术,但可以位于IIS级别而不是应用程序级别。有关此方法的更多信息,请访问:

但请注意,您不能使用现有技能编写此类过滤器,因为它只支持使用C/C++编程


希望这有帮助:)

也许我没有说清楚,这些服务是在不同的应用程序下的,就像这样。http模块在这套衣服上工作吗?谢谢,我会试试的。