检查当前请求是否经过身份验证的标准方法是使用HttpContext.User.Identity.IsAuthenticated
。我刚遇到User
属性为null的情况,所以我无法进行检查!
我找到了an article describing the IIS request pipeline。我在PostResolveRequestCache
阶段,显然在 AuthenticateRequest
之后!为什么HttpContext.User
在那时仍然为空?
答案 0 :(得分:1)
FormsAuthenticationModule
未运行。我必须手动将其添加到web.config
,User
不再为空。我am investigating导致模块不能在这里运行的原因。
答案 1 :(得分:0)
这取决于请求生命周期的哪一点,您正在检查此值。在您的情况下,使用对HttpContext.User == null的检查为IsAuthenticated的检查添加前缀。如果为NULL,则不进行身份验证。 :)
答案 2 :(得分:0)
HttpContext.User为null的原因是没有用户验证jet。 您可以使用Request.IsAuthenticated来检查,并且仅当它是真的时才移动到HttpContext.User!