我在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;)请求已经过身份验证。