'daki role dayalı olarak auth cookie zaman aşımı süresini ayarlama Yöneticilerin normal kullanıcılardan daha uzun süre oturum açmasına izin vermek istiyorum. Çerez zaman aşımını programatik olarak veya rol tabanlı bir şekilde ayarlamak için bir kanca göremiyorum. ASP'de Form Kimlik Doğrulaması kullanılarak bu mümkün mü?ASP.NET
ASP.NET
cevap
Evet, bunu yapabilirdiniz. Çerçevenin otomatik olarak oluşturmasına izin vermek yerine kimlik doğrulama biletini elle oluşturmanız gerekir.
Kullanıcı rolüne bağlı olarak, bilete atadığınız geçerlilik süresi.
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);
Çok açık ve yardımsever! Teşekkür ederim! FormsAuthenticationTicket aşırı yükünü yalnızca dize kullanıcı adı alma, bool IsPersitent ve int zaman aşımını kullanırsam, şifrelemeyi ve tanımlama bilgisini atabilir miyim? –
Buradan anlıyorum: https://msdn.microsoft.com/en-us/library/w04e17xz(v=vs.100).aspx, FormsCookiePath'in otomatik olarak ayarlanması ve böylece şifrelenmesi vb. aynısını yaptı. –
teşekkürler! Mükemmel bağlantı. – Wyatt