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对象?

谢谢

SetPrincipal (@User.Identity.Name) 来自 ASP.Net MVC 中的 cookie

请尝试以下代码注意:请在页面浏览量上检查它,而不是以相同的方法创建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);
    }