如何将经过身份验证的用户传递给ASP.NET中的嵌套HttpContext?

时间:2014-07-18 20:31:14

标签: c# asp.net authentication httpmodule digest-authentication

我在HttpModule中验证用户(在AuthenticateRequest事件处理程序中)。我将经过身份验证的用户设置为((HttpApplication)sender).Context.User。但是,用户会丢失,因为DefaultDocumentModule会创建另一个不再包含经过身份验证的用户的HttpContext

对此有何解决方案?

(我试图将经过身份验证的用户保存到ThreadStatic字段,但这不安全。然后,我试图将用户保存到HttpRequest.Items,但这也会丢失。)

更新 - 详细信息:

我正在使用摘要式身份验证(不是基于内置的IIS,仅适用于AD)。身份验证在AuthenticateRequest的{​​{1}}事件处理程序中执行。问题是HttpModule被调用了两次。由于AuthenticateRequest(将请求从' /'转移到例如' /Default.aspx')会为' /默认创建另一个DefaultDocumentModule。 ASPX&#39 ;.

我不知道如何将信息从第一个HttpContext(对于' /')传递到第二个HttpContext(对于' /Default.aspx& #39;)请求已经过身份验证。

0 个答案:

没有答案