Frage

Was ist der beste Weg ‚remember me‘ Funktionalität auf einer ASP.NET-Website zu implementieren?

Soll ich benutzerdefinierte Cookies oder gibt es eine einfachere Methode?

War es hilfreich?

Lösung

Sind Sie mit den eingebauten Authenication Dienstleistungen, die von ASP.NET zur Verfügung gestellt? Wenn ja, es ist ziemlich einfach.

Andere Tipps

Für mich ist die Lösung wurde die Unterscheidung zwischen einem Browser-Session-Cookie und einem persistenten einem (nicht mit dem asp.net Session-Cookie zu verwechseln) - Einstellung einen niedrigen Ablaufs wird eine persistente Cookie erstellen was bedeutet, es erinnert wird, wenn der Browser innerhalb der Ablaufzeit geschlossen und wieder geöffnet. Die folgenden Werke für mich:

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);
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top