这段代码来自asp.net mvc RTM源代码
谁设置HttpContext.User.Identity的IsAuthenticated属性?
protected virtual bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) { throw new ArgumentNullException("httpContext"); } IPrincipal user = httpContext.User; if (!user.Identity.IsAuthenticated) { return false; } }
通过调用方法(asp.net mvc 4.0示例项目)设置IsAuthenticated属性:
FormsAuthentication.SetAuthCookie(model.UserName,model.RememberMe);
当我调试asp.net mvc 4.0示例项目的logon方法的代码之后,以上的FormsAuth …方法调用。执行
User.Identity.IsAuthenticated
User.Identity.IsAuthenticated
说真的。那么谁将这个属性设置为TRUE和WHEN?
更新:
这是关于FORMS身份验证!
我现在调试了asp.net mvc示例项目的logon方法,并且在logon操作返回后,我已经覆盖的AuthorizeCore方法被调用,然后IsAuthenticated属性为TRUE!
TRUE的设置是否取决于ModelState.Value.Error集合?
如果错误集合中的count == 0,则IsAuthenticated为TRUE
否则IsAuthenticated是FALSE
你可以确认吗