2011-06-08 21 views
12

özel bilet üzerinde son kullanma süresini sürgülü:ASP.NET Kimlik Aşağıdaki kodu kullanarak kendi kimlik doğrulama bileti oluşturma

string formsCookieStr = string.Empty; 
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
      1,        // version 
      username,      // user name 
      DateTime.Now,     // issue time 
      DateTime.Now.AddMinutes(30), // expires 
      false,       // Persistence 
      userRoleData     // user data 
    ); 
formsCookieStr = FormsAuthentication.Encrypt(ticket); 
HttpCookie FormsCookie = new HttpCookie(FormsAuthentication.FormsCookieName, formsCookieStr); 
HttpContext.Response.Cookies.Add(FormsCookie); 

Ben son kullanma kayan süre sonu olmak istiyorum - Müşteri sonra bir istek gönderir her zaman son kullanma tarihi 30 dakika olarak ayarlanmalıdır. Ancak, ben sadece kullanıcı ilk kez oturum açtığında ben bir bilet yaratıyorum. Will ASP.NET otomatik olarak benim için zaman aşımını kaymaya devam edecek mi, ya da sürgülü son kullanma için 'manuel' bir şey yapmam gerekecek mi?

cevap

10

Bu, web.config dosyasının forms bölümünde yapılandırılmıştır. sürgülü son kullanma çalışma şekli her isteği üzerine ASP.NET motor zaman aşımı artırarak kimlik doğrulama tanımlama bilgisini yeniden yazar olmasıdır:

<authentication mode="Forms"> 
    <forms 
     loginUrl="~/Account/LogOn" 
     timeout="2880" 
     slidingExpiration="true" 
    /> 
</authentication> 

Not ancak kayan süre sonu sağlayan ASP.NET Security Practices kötü bir uygulama olarak kabul şeylerden biri olduğunu.

+2

Teşekkürler. Ancak, özel biletler kullanılmadığı zaman süresinin dolması, sürenin dolmasıyla doludur, aksi halde kullanıcı, son isteklerinin ne kadar geçerli olduğuna bakılmaksızın çıkış yapacaktır? Bu davranışı gözlemlemiyorum ve dokümanlar sürgülü son kullanımın varsayılan olduğunu söylüyor. Özel biletimle varsayılan süreyi doldurabilir miyim? (Web.config dosyasında hiç kayma ayarım yok) – Journeyman

+11

"Kayan süre sonu süresinin çalışması her istekte ASP.NET altyapısı zaman aşımını artırarak kimlik doğrulama çerezini yeniden yazıyor" ... ASP.NET yalnızca yeniden yazdığı için tamamen doğru değil zaman aşımı değerinin yarısından fazlası geçtiyse doğrulama bileti. http://weblogs.asp.net/rajbk/archive/2004/10/11/241080.aspx – BrazenTongue

+0

@BrazenTongue - Şubat 2017'den itibaren bağlantı kesildi, bir yedek sağlamak mümkün olabilir mi? – user3256944

İlgili konular