Implementazione di “Ricordati di me” Funzionalità in ASP.NET
-
18-09-2019 - |
Domanda
Qual è il modo migliore per implementare la funzionalità 'remember me
' su un sito web ASP.NET?
Dovrei usare cookie personalizzati o c'è un metodo più semplice?
Soluzione
Si sta utilizzando il costruito in servizi Authenication
forniti da ASP.NET? Se è così, la sua piuttosto facile.
Altri suggerimenti
Per me la soluzione è stata differenziazione tra un cookie del browser sessione (da non confondere con il cookie di sessione asp.net) e una persistente uno - la fissazione di un basso scadenza creerà un cookie persistente che significa che viene ricordato quando il browser è chiuso e riaperto entro il tempo di scadenza. Le seguenti opere per me:
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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow