问题标签 [httpmodule]

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 投票
3 回答
1751 浏览

asp.net - IIS 集成请求处理管道——修改请求

我想在 IIS 集成请求处理管道模式下运行的 IIS7 中使用 HttpModule 实现类似 ISAPI 过滤器的功能。

目标是在 Web Server 级别查看传入的请求,并将一些自定义 HttpHeaders 注入到请求中。(for ex: HTTP\_EAUTH\_ID)

稍后在 ASPX 页面的页面生命周期中,我应该能够将该变量用作

那么在 Web 服务器级别实现这个模块,是否可以改变 ServerVariables 集合?

0 投票
7 回答
832 浏览

seo - SEO 和带有动态 URL 的硬链接

使用 ASP.NET MVC(或使用 HttpHandlers),您可以动态生成 URL,就像这个问题中的一样,其中包括标题。

如果标题更改(例如,编辑它)并且有一个链接指向另一个站点的页面,或者 Google 的 Pagerank 是针对该 URL 计算的,会发生什么情况?

估计全丢了吧?(链接指向无处,计算的pagerank丢失)

如果是这样,有没有办法避免它?

0 投票
6 回答
4780 浏览

c# - 使用 HttpModule 处理异常

我们正在审查该公司的一个系统的异常处理,并发现了一些有趣的事情。

大多数代码块(如果不是全部)都在 try/catch 块内,并且在 catch 块内抛出了一个新的 BaseApplicationException - 这似乎来自企业库。我在这里有点麻烦,因为我看不到这样做的好处。(任何时候发生异常都会抛出另一个异常)其中一位已经使用该系统一段时间的开发人员说这是因为该类负责发布异常(发送电子邮件和类似的东西),但他不太确定。在花了一些时间浏览代码之后,我很有信心地说,它所做的就是收集有关环境的信息,而不是发布它。

我的问题是: - 将所有代码包装在 try { } catch { } 块中而不是抛出新异常是否合理?如果是,为什么?有什么好处?

我个人的看法是,使用 HttpModule,注册 Application 事件的 Error 事件,并在模块内做必要的事情会容易得多。如果我们沿着这条路走,我们会错过什么吗?有什么缺点吗?

非常感谢您的意见。

0 投票
4 回答
19760 浏览

iis-6 - IIS6 + HttpModule:此操作需要IIS集成管道模式

我正在使用 IIS6,我写了一个 HttpModule,我得到了这个错误?谷歌搜索后发现这个问题是由.NET framework 3.5引起的,所以我把这个放在我没有安装.NET 3.5的机器上,但问题仍然存在!

0 投票
1 回答
1803 浏览

asp.net-mvc - 删除或更改 Global.asax 后的默认路由

我正在 ASP.NET MVC 中构建一个 CMS,并希望允许用户在用户第一次访问该站点时选择他们希望默认显示的页面。

我在 Global.asax 中设置了我的默认路由,如下所示(例如):

但后来我想根据我从数据源中检索到的内容更改 HttpModule 中的默认路由;如何更改最初在 Global.asax 中设置的默认路由?更改 HttpModule 中的路由表是否为时已晚,如果是,我该如何实现此功能?

0 投票
5 回答
17805 浏览

asp.net - 在运行时以编程方式注册 HttpModules

我正在编写一个应用程序,其中第 3 方供应商可以编写插件 DLL 并将它们放入 Web 应用程序的 bin 目录中。我希望这些插件能够在必要时注册自己的 HttpModules。

无论如何,我是否可以在运行时在管道中添加或删除 HttpModules 而无需在 Web.Config 中具有相应的条目,或者在添加/删除模块时我是否必须以编程方式编辑 Web.Config?我知道这两种方式都会导致 AppDomain 重新启动,但我宁愿能够在代码中完成它,而不是不得不捏造 web.config 来达到相同的效果。

0 投票
6 回答
64922 浏览

asp.net - 我可以从 HTTPModule 访问会话状态吗?

我真的可以从我的 HTTPModule 中更新用户的会话变量,但据我所见,这是不可能的。

更新:我的代码当前正在OnBeginRequest ()事件处理程序中运行。

更新:根据目前收到的建议,我尝试将其添加到Init ()我的 HTTPModule 中的例程中:

AddHandler context.PreRequestHandlerExecute, AddressOf OnPreRequestHandlerExecute

但是在我的OnPreRequestHandlerExecute例程中,会话状态仍然不可用!

谢谢,如果我遗漏了什么,我们深表歉意!

0 投票
2 回答
931 浏览

httpmodule - 确定 HttpModule 主/调用请求

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

0 投票
2 回答
2745 浏览

c# - ASP.NET HttpModule - 保证执行前处理程序和后处理程序代码?

基本上,我正在尝试在 ASP.NET HttpModule 中编写以下(伪代码):

我发现我可以挂接到 HttpModule.PreExecuteHandler 的“预代码”和 .Error 的“错误代码”。但是 PostExecuteHandler 似乎并没有可靠地运行。

BeginRequest 和 EndRequest 运行可靠,但对于我需要编写的代码来说还为时过早,这需要检查选择执行的处理程序。直到 BeginRequest 之后才选择处理程序。

编写这种包装器是否有最佳实践?

谢谢!

0 投票
7 回答
1131 浏览

.net - 奇怪的 Firefox 输入错误

我对此有点吃惊,所以我想知道是否有任何 SOers 以前遇到过它。

我有一个基本平坦的页面,在标记中播种了许多 input=text,默认值依次为 A、B、C、D、E。标记在查看源代码中如下所示:

迭代多行 A->E。

该页面由 ASP.NET 2.0 应用程序创建。版本 1 仅仅是“user.aspx?id=1” 版本 2 是由 RESTlike HTTPModule 在内部从“users/1”映射到“user.aspx?id=1”的路径。

版本 1 很好。渲染后的版本 2让我输入的值可重复地按 E、A、B、D、E 的顺序排列,但我看不出这个顺序的原因。

我可以查看源代码并且 value="X" 是正确的,并且在 firebug 中的 DOM 检查中defaultValue是正确的,但不是。

  • 这不是 CSS 问题 - CSS 已从页面中删除。
  • 这不是 JS 问题 - JS 已关闭。
  • 这不是 HTML 问题 - 标记在所有情况下都是完全相同的。

唯一的区别是如何请求标记。就好像 Firefox 以某种方式与服务器发生了量子纠缠。

有没有人听说过这样的事情?我惊呆了。

编辑:这也绝对是一个 FF 问题。IE、Opera 和 Chrome 都可以正常使用该页面。

编辑2:我的字面意思是请求的路径。一个版本是对http://localhost/user.aspx?id=1的请求,另一个(失败的)版本是对http://localhost/users/1的请求,该版本由 HTTPModule 映射到第一个路径。name= 无济于事,因为默认值不是人工输入的,它们在源中提供。