Die Implementierung „Remember me“ Funktionalität in ASP.NET
-
18-09-2019 - |
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?
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