什么是执行上的ASP.NET网站“remember me”功能的最佳方法是什么?

我应该使用自定义Cookie或者是有一个更简单的方法?

有帮助吗?

解决方案

您使用ASP.NET提供的内置Authenication服务?如果是这样,它很容易。

其他提示

有关我将溶液在浏览器会话cookie(不与asp.net会话cookie混淆)和持久的一个之间进行区分 - 设置一个较低的到期将创建一个持久cookie意味着当浏览器是它被记住在有效期限内时关闭并重新打开。对我来说,以下工作:

public void SetAuthenticationCookie(LoginView loginModel)
    {
      if (!loginModel.RememberMe)
      {
        FormsAuthentication.SetAuthCookie(loginModel.Email, false);
        return;
      }
      const int timeout = 2880; // Timeout is in minutes, 525600 = 365 days; 1 day = 1440.
      var ticket = new FormsAuthenticationTicket(loginModel.Email, loginModel.RememberMe, timeout);
      //ticket.
      string encrypted = FormsAuthentication.Encrypt(ticket);
      var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted)
        {
          Expires = System.DateTime.Now.AddMinutes(timeout),
          HttpOnly = true
        };
      HttpContext.Current.Response.Cookies.Add(cookie);
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top