Je souhaite autoriser les administrateurs à se connecter pour des utilisateurs plus longs que la normale. Je ne vois pas un crochet pour définir le délai d'attente de cookie par programme ou par rôle. Est-ce possible dans ASP en utilisant l'authentification par formulaire?Définition de la longueur du délai d'attente du cookie d'authentification en fonction du rôle dans ASP.NET
Répondre
Oui, vous pouvez le faire. Vous devrez générer le ticket d'authentification manuellement au lieu de laisser le framework le générer automatiquement. En fonction du rôle de l'utilisateur, l'expiration que vous attribuez au ticket.
SNIPPET:
switch Role:
Case A: VARIABLE X = Y; BREAK;
CASE B: VARIABLE X = Y2; BREAK;
..
End switch
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, // Ticket version
Username.Value, // Username associated with ticket
DateTime.Now, // Date/time issued
DateTime.Now.AddMinutes(VARIABLE X), // Date/time to expire
true, // "true" for a persistent user cookie
reader.GetString(0), // User-data, in this case the roles
FormsAuthentication.FormsCookiePath);// Path cookie valid for
// Encrypt the cookie using the machine key for secure transport
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
FormsAuthentication.FormsCookieName, // Name of auth cookie
hash); // Hashed ticket
// Set the cookie's expiration time to the tickets expiration time
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
Très clair et utile! Je vous remercie! Si j'utilise la surcharge FormsAuthenticationTicket ne recevant que le nom d'utilisateur de chaîne, bool IsPersitent et int timeout, est-ce que je ferais aussi le cryptage et assignerais à cookie? –
Je comprends d'ici: https://msdn.microsoft.com/en-us/library/w04e17xz(v=vs.100).aspx dans les remarques, que le FormsCookiePath est réglé automatiquement et donc le cryptage, etc. fait de même. –
Merci! Lien parfait. – Wyatt