问题标签 [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 回答
82 浏览

asp.net - 如何为特定页面集启用/禁用 IHttpModule

我有一段代码正在预处理提交的表单。目前它是复制/粘贴解决方案,但现在我在三个页面上使用基本相同的代码,我想封装它。最初的想法是使用 IHttpModule 来实现。唯一的问题是:如何只为几个页面注册这个模块,所以我可以在 BeginRequest 事件处理程序中做我的事情。

0 投票
1 回答
2440 浏览

c# - 创建 ASP.NET HTTP 模块

让我们考虑两个具有相同名称空间的类并扩展 IHttpHandler 如下

第一类:

第 2 类:

在上面的命名空间中是: MyPipeLine 有两个类 clsMyHandler1,clsMyHandler2

我在 web.config 文件中给出了条目

当我编译应用程序时,它会抛出错误

无法加载文件或程序集“MyPipeLine.clsMyHandler2”或其依赖项之一。该系统找不到指定的文件。

我认为 C# 将所有模块都视为类。你有解决这个问题的想法吗?

0 投票
2 回答
2066 浏览

asp.net - HttpModule 中的 Sitecore 上下文

我创建了 simple HttpModule,我需要的只是 get 在Sitecore.Context内部是有效的,但是在处理过程中我看到 mySitecore.Context是某种默认值。

我可以获得登录 Sitecore 的 Sitecore 用户等。如何解决?

0 投票
1 回答
2798 浏览

c# - 限制 HttpModule 只处理某些请求

我们在网站的特定部分使用目录浏览,但我们的用户并不喜欢默认的 ASP.NET

目录浏览。老实说,我们也不是特别关心它。

我遇到了 mvolo 的自定义目录浏览模块并尝试使用它。但是,我发现如果我在我的根 web.config 中启用了它,它允许在没有默认页面的情况下浏览所有文件夹的目录(如您所料)。如果我在根目录中设置了 enabled="false",它会抛出一个 HttpException,它被我的通用错误页面捕获,但是每个请求都会导致异常,例如当请求的页面在加载期间有额外的图像要请求时。

我相信(我可能是错的),默认目录浏览模块仅在没有默认文件夹并且您没有请求特定文件(例如,mysite.com/images/ 与 mysite. com/images/logo.gif)。

我已经重构了自定义模块的功能,但我无法弄清楚如何将模块限制为仅在启用目录浏览时需要完全执行的情况下——而不是针对每个请求。这是模块中的一段代码:

0 投票
1 回答
562 浏览

c# - IHttpModule RewritePath 与 StatusCode 404

我有一个如下所示的 URL:/employees?employeeId=3992,它显示 ID 为 3992 的员工。它工作正常,HTTP 状态代码为 200 OK。

但是,当有人在 URL 中写入无效 ID 时,例如:/employees?employeeId=39920,我希望我的 HTTP 处理程序重写错误页面的路径,并发送 HTTP 状态代码 404。

这是我正在使用的代码:

当我将 HTTP 状态代码设置为 404 时,页面会显示此标准 ASP.NET 404 错误页面。

在此处输入图像描述

0 投票
0 回答
644 浏览

asp.net - 自定义 IHttpModule 中的 HttpContext 会话中缺少对象

我正在编写自定义 IHttpModule。我需要管理 HttpContext 会话对象。为了实现这一点,我添加了从 IRequiresSessionState 继承的自定义 IHttpHandler。然后我可以访问会话(它不为空)。我在处理程序执行后在 PreRequestHandlerExecute 中编写逻辑,以使会话可达。

然后我遇到了问题。当我向会话中添加未保存/存储的内容时。对于模块中的每个连续请求,我都找不到已添加到会话中的对象。

是否可以从自定义模块持久写入会话,或者我遗漏了什么?

已编辑-> R.Isajev:

在自定义模块中,我使用自定义处理程序来启用模块中的会话使用,因为它最初是无会话的。在此示例中,第一次调用会话时添加了“Isajev”。在来自同一用户和浏览器的下一个呼叫中,它不存在于会话中。

问候, 拉斯特科

0 投票
1 回答
120 浏览

sharepoint - IHttpModule Rewritpath to Layouts 文件夹显示 404 错误

我正在使用 iHttpModule 进行 sharepoint2010 重写。

它适用于 /pages/ 、 /sitepages/ 库中的页面。但是当我将它重写到布局文件夹时,它会引发 404 错误。

这就是我想要做的。

http:///MyEmployees/John.aspx

我想重写为 http:///Employees/AllItems.aspx?ID=4

0 投票
2 回答
8060 浏览

c# - 在 C# 中访问上下文会话变量

我有一个 ASP.NET 应用程序和扩展 IHttpModule 的 dll。我已经使用以下方法将会话变量保存在 httpcontext 通过

在我的 asp.net Default.aspx 页面中,我使用代码来检索值

我收到错误响应

为了确保变量是否存储在会话中,我在将会话中的值存储为之后,通过类处理程序中的以下方法进行了交叉检查

它执行得很好并从会话中检索了值。

0 投票
1 回答
423 浏览

.net - WCF 通过 IHttpModule 设置 Thread.CurrentPrincipal

我有 aspNetCompatibility = "true" 的 wcf + rest web 服务。为了提供自定义身份验证,我编写了 asp.net http 模块:IHttpModule。代码非常简单:只需将一些主体分配给 Thread.CurrentPrinicpal 属性。

在方法执行期间,我仍然将“空/默认”主体作为 Thread.CurrentPrincipal 的值。我还注意到模块和操作执行中有不同的线程 ID(Thread.CurrentThread)。我建议 wcf 提供一个新线程来执行操作,但没有找到任何证据。

所以问题是:我是对的吗?wcf 是否允许控制该行为?我在这里很困惑,因为创建新线程会自动将主体移动到新线程。因此 wcf '清理'他们..

与 principalPermissionMode="None" 相同的问题。

我会很感激任何想法!

干杯!

0 投票
0 回答
226 浏览

asp.net - 在 RewritePath 之后,aspx 页面呈现为纯文本

我的 ASP.NET 应用程序使用与此处相同的 HTTP Moule 。但是,每当我尝试在 Application_PostAcquireRequestState 中重写路径时,我都会将 Default.aspx 视为纯文本。

有谁知道为什么它是这样呈现的,而不是被呈现为普通的 aspx 页面?

这是我的 Application_PostAcquireRequestState 的代码

重写路径后,我看到:

谢谢