asp.net-mvc – 谁设置HttpContext.User.Identity的IsAuthentica
发布时间:2020-12-16 00:34:28 所属栏目:asp.Net 来源:网络整理
导读:这段代码来自asp.net mvc RTM源代码 谁设置HttpContext.User.Identity的IsAuthenticated属性? protected virtual bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) { throw new ArgumentNullException("httpContext"); } IPrin
这段代码来自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 仍然返回FALSE。只有当我调试LogOff方法的时候 User.Identity.IsAuthenticated 说真的。那么谁将这个属性设置为TRUE和WHEN? 更新: 这是关于FORMS身份验证! 我现在调试了asp.net mvc示例项目的LogOn方法,并且在LogOn操作返回后,我已经覆盖的AuthorizeCore方法被调用,然后IsAuthenticated属性为TRUE! TRUE的设置是否取决于ModelState.Value.Error集合? 如果错误集合中的count == 0,则IsAuthenticated为TRUE 你可以确认吗 解决方法
该属性由表单认证模块通过从请求中读取和解析表单认证cookie来设置。我已经提出了大胆的请求,因为我怀疑这是你遵循这种行为的原因。让我解释。成功验证后,当您调用FormsAuthentication.SetAuthCookie时,您将认证cookie添加到响应中。此cookie将存储在客户端浏览器上,并将在后续请求中发送。因此,只有在随后的请求中,用户才被认为是认证的。所以你需要总是重新调用SetAuthCookie方法。在调用此方法的请求中,您已经知道用户是否提供正确的凭据,因此您不需要检查IsAuthenticated属性。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序
- asp.net-mvc – 如何在控制器中显示警报消息
- asp.net-mvc – ASP.NET MVC用户友好401错误
- asp.net-core – dnx和dnu没有在Ubuntu 15.10上运
- asp.net – 如何使用PSAKE发布网站
- 获取asp.net中的上一页名称
- 如何使用ASP.NET在纯HTML页面上执行表单验证?
- asp.net – VS2010中新的asp“showat”属性要求不
- asp.net-mvc – 将Angular与MVC 5捆绑在一起后出
- asp.net-core – 对project.json中的依赖项感到困
热点阅读