问题标签 [ihttpmodule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
226 浏览

c# - 如何读取在 IIS6 上运行的 .NET 4.0 应用程序中的响应标头?

我正在编写一个自定义 IHttpModule 实现器,以便可以根据需要记录请求/响应信息。但是,在尝试读取响应标头时,我遇到了一个绊脚石。现在仅当您在 IIS7 上运行并以集成管道模式运行时,才支持 HttpResponse.Headers。我需要将此模块安装在 IIS6 下托管的 Web 应用程序中,因此我需要另一种方法来获取此信息。

实现这一目标的最佳方法是什么?

0 投票
3 回答
383 浏览

asp.net - 我可以在 IHttpModule 中向客户端发送响应后拦截吗

我有一个自定义 IHttpModule 用于记录所有 HTTP 请求和响应,目前运行良好,但我很想扩展它,以便确定响应实际需要多长时间。

响应记录在 HttpApplication.EndRequest 事件中,但此事件在请求实际发送到 Web 客户端之前触发。虽然这可以让我确定服务器处理响应所需的时间,但我也希望能够计算客户端实际接收响应所需的时间。

是否有事件或其他机制允许我在客户端完成接收响应后进行拦截?

0 投票
3 回答
1948 浏览

asp.net - HttpModule 未在 IIS 6 上接收 cookie

我有一个使用 Windows Server 2003 在 IIS 6 上创建并运行的 HttpModule。我可以将 cookie 发送到浏览器,但我无法在下一个请求时读取它们,cookie 始终为空。

如果我在 IIS 7 上运行这个模块,它工作得很好。IIS 7 目前不是一个选项,因为我们还没有切换,这需要在此之前完成。

另外,我已经尝试过使用 PostAcquireRequestState 挂钩。

0 投票
1 回答
190 浏览

.net - .NET Response.Filter 不使用 IIS7 调用 Write()

我有一个 .NET IHttpModule,它添加了一个响应过滤器并对请求的文件进行了一些修改。但是,虽然这可以通过 Visual Studio 工作,但我无法通过 IIS 完成这项工作。使用 II7,v2.0.50727 框架。

响应过滤器被添加到 IHttpModule 的 BeginRequest 事件中......

它调用以下...

我可以看到响应过滤器的 Flush() 和 Close() 方法被调用,但我在 Write() 中的断点从未被命中。

任何人都可以帮助解释为什么没有调用 Write() 吗?

我的 web.config 已正确设置为注册 IIS7 和 Visual Studio 的模块(模块和 httpmodule 等)

这正是在这里找到的问题——ASP.NET Response.Filter 不调用 Write——我无法从中找到解决我问题的答案。

0 投票
2 回答
1689 浏览

asp.net - 在 asp.net 中动态更改查询字符串

我们的客户端要求加密 URL,因为它在查询字符串中传递值。我们使用了加密并且能够对 URL 进行加密;但是,现有代码querystring["var"]在很多地方使用并且由于加密的 URL 而失败。因此,在页面加载时,我们必须解密 URL。如果我使用 解密并更改查询字符串response.redirect,那么查询字符串将再次出现在 URL 中并且可能被滥用。

请帮忙。

编辑 我正在阅读有关 RESTfull Web 服务的信息。我还没有理解整个概念。我想知道我是否可以在我的应用程序中使用它来隐藏查询字符串。如果是这样,请告诉我。

谢谢。

0 投票
1 回答
1934 浏览

asp.net - 在 ASP.NET 和 IIS7 中记录原始和压缩的 HTTP 响应

按照这个问题的思路,我想创建一个 HttpModule 来为我们记录一些自定义的请求和响应。使用该问题的最流行答案中的代码,我已经启动并运行了一个 HttpModule,它确实有效:

(注意,代码中引用的OutputFilterStream类在引用的问题中)。

但是,响应似乎缺少我在 Fiddler 中看到的一些 HTTP 标头(例如“日期”),更重要的是,当我打开压缩时,我正在记录的响应没有被压缩,而我在 Fiddler 中看到的是。

所以我的问题- 是否可以记录压缩内容,或者这是否发生在我的模块无法连接的后续步骤中?

作为记录,我也尝试过处理PreSendRequestContent事件并且响应仍然未压缩。

0 投票
1 回答
1533 浏览

c# - ASP.Net MVC AsyncController 日志请求处理时间

我需要获取 asp.net MVC 的请求处理时间。我使用 IHttpModule 订阅 onBeginRequest 和 onEndRequest 事件。对于同步控制器,它工作得很好,但对于异步,它返回错误的结果(例如 20 毫秒,而实时时间约为 2 分钟)。如何以一般方式获得 AsyncController 的请求处理时间(不在 ActionAsync/ActionCompleted 中为每个异步操作编写附加代码)?

0 投票
1 回答
290 浏览

c# - IHttpModule 和线程

我有一个实现IHttpModule的类。这是一个帮助我的应用程序防御 DDOS 攻击的支持类。实现该BeginRequest方法后,我尝试调试我的代码,并且由于某种原因,每次调试该类时,我在 Visual Studio 中有多个线程。我不明白为什么突然间,在我的本地机器上运行这个应用程序时,我得到了几个线程,而且它只发生在这个类中。

0 投票
2 回答
607 浏览

c# - 从 IHttpModule 的 OnBeginRequest 方法访问会话变量

我有一个网站,为了正常工作,需要在其所有 URL 上附加一个 XML 文件,假设该文件名为module-1.xml.

为了保持这些 URls 的干净,我编写了一个 IHttpModule,它使用HttpContext.Current.RewritePath来完成事件内部的附加工作OnBeginRequest

IHttpModule 看起来很简单并且可以工作:

现在,我想使用 session 变量来检测用户何时决定将网站从 切换model-1.xmlmodel-2.xml并将我的代码更改如下:

根据我的发现,可以在模块内部访问会话,但不能从OnBeginRequest事件内部访问,这是唯一HttpContext.Current.RewritePath可以使其起作用的事件(至少从我一直在做的所有测试中)。

我的假设正确吗?如果是,我可以使用什么替代方案?创建自定义会话变量?我应该从 txt 文件还是从数据库中读取以了解用户正在查看的模块?我如何从模块内跟踪用户?

0 投票
1 回答
1226 浏览

sharepoint - 实施的 IHttpModule 类事件未触发,SharePoint 2010 问题

我正在开发 sharepoint 2010 网络应用程序。我想通过使用从 SPHttpApplication 继承的 Global.asax 以经典的 asp.net 方式处理一些 Applicaton 事件(Begin_Request、End_Request、Application_Start)。

我找到 了两种 区分的方法。

第一个建议在 Global 类中重载 SPHttpApplication 。好主意,但不适合我,因为我的应用程序部署到另一个主站点的子站点。如果有办法绕过这一刻,那将是一个很好的解决方案!

第二个建议实现 IHttpModule 接口并从 HttpApplication 上下文变量注册事件。它适合我,我创建了一个类库项目,其中一个类实现了这个接口。我还在 web.config 文件中添加了特殊记录:

其中“Artec.DS.HttpContext”是项目名称,DSModule 是类名称。毕竟,当我开始调试时,不会调用“Init()”方法。

更新

首先我的 web.config 有错误的“类型”属性。我对类名而不是程序集名感到困惑。所以格式良好的标签如下:

修改 web.config system.webServer/modules 后(感谢CBono) Init() 被调用,这是我最初问题的答案。

但现在我收到错误:“System.Web.HttpException:服务器操作在此上下文中不可用。” 尝试映射服务器路径时: