MVC:正确的身份验证

时间:2012-11-07 16:10:09

标签: asp.net-mvc asp.net-mvc-3 forms-authentication

在我的控制器中,我有一个登录方法。在那里,我检查凭据,如果一切正常,请致电

FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

它有效,但如果我立即检查

this.User.Identity.IsAuthenticated

在控制器内部,我发现它仍然是假的。我需要刷新页面才能看到用户确实已经过身份验证。是否有可能在同一请求期间立即对用户进行身份验证?其他部分视图依赖于它后呈现。

在网络表单开发中,我会称之为

RedirectFromLoginPage

但是这里是从布局文件渲染的部分视图中,我无法从那里重定向。

1 个答案:

答案 0 :(得分:1)

呼叫FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);设置加密的身份验证Cookie。因为这是一个cookie,所以IsAuthenticated的调用不是立即的,因为用户必须向服务器发出另一个请求才能将cookie发送到客户端或从客户端发送cookie。