【发布时间】:2011-12-28 19:48:18
【问题描述】:
此代码来自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;
}
}
IsAuthenticated属性是调用方法设置的吗(asp.net mvc 4.0示例项目):
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
当我在上述FormsAuth...方法调用后调试asp.net mvc 4.0示例项目的LogOn方法的代码时。执行
User.Identity.IsAuthenticated
仍然返回 FALSE。只有当我调试 LogOff 方法时,
User.Identity.IsAuthenticated
说是真的。那么谁将这个属性设置为 TRUE 和 WHEN 呢?
更新:
这是关于FORMS身份验证!
我现在确实调试了 asp.net mvc 示例项目的 LogOn 方法,在返回 LogOn 操作后,我已覆盖的 AuthorizeCore 方法被调用,然后 IsAuthenticated 属性为 TRUE!
TRUE 的设置是否取决于 ModelState.Value.Error 集合?
如果错误集合中的 count == 0,则 IsAuthenticated 为 TRUE 否则 IsAuthenticated 为 FALSE
你能确认一下吗?
【问题讨论】:
标签: asp.net-mvc authentication forms-authentication