为什么在AuthenticateRequest完成后HttpContext.User为null

时间:2014-05-11 08:52:05

标签: asp.net authentication httpcontext

检查当前请求是否经过身份验证的标准方法是使用HttpContext.User.Identity.IsAuthenticated。我刚遇到User属性为null的情况,所以我无法进行检查!

我找到了an article describing the IIS request pipeline。我在PostResolveRequestCache阶段,显然 AuthenticateRequest之后!为什么HttpContext.User在那时仍然为空?

3 个答案:

答案 0 :(得分:1)

FormsAuthenticationModule未运行。我必须手动将其添加到web.configUser不再为空。我am investigating导致模块不能在这里运行的原因。

答案 1 :(得分:0)

这取决于请求生命周期的哪一点,您正在检查此值。在您的情况下,使用对HttpContext.User == null的检查为IsAuthenticated的检查添加前缀。如果为NULL,则不进行身份验证。 :)

答案 2 :(得分:0)

HttpContext.User为null的原因是没有用户验证jet。 您可以使用Request.IsAuthenticated来检查,并且仅当它是真的时才移动到HttpContext.User!