SetPrincipal (@User.Identity.Name) 来自 ASP.Net MVC 中的 cookie
本文关键字:Net ASP MVC 中的 cookie 来自 @User Identity Name SetPrincipal | 更新日期: 2023-09-27 18:34:53
我想知道当用户单击"记住我"复选框时如何通过cookie设置@User.Identity.Name
。
饼干代码
if (_model.RememberMe)
{
HttpCookie cookie = new HttpCookie("login");
cookie.Values.Add("username", _model.Username);
cookie.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cookie);
}
首次登录代码
if (Membership.ValidateUser(Username,Password))
{
RememberMe();
FormsAuthentication.RedirectFromLoginPage(Username, false);
}
在第一次登录时,Identity.name 设置,但是当我关闭浏览器并返回站点时。 它无需用户输入凭据即可正确登录,但Identity.name
为空。
if (Request.Cookies["login"] != null)
{
// We know the automatic log in has worked as it comes into here...
}
用户通过登录页面后,我需要做什么才能设置iPrincipal
对象?
谢谢
请尝试以下代码注意:请在页面浏览量上检查它,而不是以相同的方法创建cokies的方法
private void CreateCokies(string userName)
{
var authTicket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(30), true, userName);
string cookieContents = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
{
Expires = authTicket.Expiration,
Path = FormsAuthentication.FormsCookiePath
};
Response.Cookies.Add(cookie);
}