La mise en œuvre « Se souvenir de moi » fonctionnalité dans ASP.NET
-
18-09-2019 - |
Question
Quelle est la meilleure façon de mettre en œuvre la fonctionnalité de 'remember me
' sur un site Web ASP.NET?
Dois-je utiliser des cookies personnalisés ou est-il une méthode plus simple?
La solution
Utilisez-vous les construits dans les services Authenication
fournis par ASP.NET? Si oui, son assez facile.
Autres conseils
Pour moi, la solution a été la différence entre un cookie de session du navigateur (à ne pas confondre avec le cookie de session asp.net) et un problème persistant - créera un cookie persistant qui signifie qu'il se souvenait mettre bas expiration lorsque le navigateur est fermé et réouvert dans le délai d'expiration. Les travaux suivants pour moi:
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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow