在我的控制器中,我有一个登录方法。在那里,我检查凭据,如果一切正常,请致电
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
它有效,但如果我立即检查
this.User.Identity.IsAuthenticated
在控制器内部,我发现它仍然是假的。我需要刷新页面才能看到用户确实已经过身份验证。是否有可能在同一请求期间立即对用户进行身份验证?其他部分视图依赖于它后呈现。
在网络表单开发中,我会称之为
RedirectFromLoginPage
但是这里是从布局文件渲染的部分视图中,我无法从那里重定向。
答案 0 :(得分:1)
呼叫FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
设置加密的身份验证Cookie。因为这是一个cookie,所以IsAuthenticated
的调用不是立即的,因为用户必须向服务器发出另一个请求才能将cookie发送到客户端或从客户端发送cookie。