12

Bu bir MVC2 web sitesi, FormsAuthentication bileti ile ilgili bir sorun yaşıyorum. 30 dakika sonra bir kullanıcı zaman aşımı tekrar giriş yapamaz. Test sırasında, DateTime.Now.AddMinutes (30) değeri 5000 olarak ayarlandı ve her şey Tamam, ama artık 30'a değişti ve bu sorun çerez oluşturmadanFormsAuthenticationTicket.expiration v web.config değer zaman aşımı

başladığında daha sonra

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
      1, 
      user.UserID, 
      DateTime.Now, 
      DateTime.Now.AddMinutes(30), 
      false, 
      "user,user1", 
      FormsAuthentication.FormsCookiePath); 

Web.config

<authentication mode="Forms"> 
    <forms loginUrl="~/Account.mvc/LogOn" timeout="2880" name=".ASPXFORMSAUTH" /> 
</authentication> 

bilet oluşturulmasında süre sonu değeri olması gerekiyor mu dosyası> = web.config değeri?

cevap

23

Kimlik doğrulama çerezini el ile oluşturduğunuzdan, web.config dosyasındaki zaman aşımı değeri tamamen yok sayılır. sonra tekrar yoktu o kullanıcı bir kez giriş yapabilmek için neden olabilir başka bir yerde saklanır değerlerdir, ancak, ben 30 dakika ikisini de ayarlar,

var ticket = new FormsAuthenticationTicket(
    1, 
    user.UserID, 
    DateTime.Now, 
    DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), 
    false, 
    "user,user1", 
    FormsAuthentication.FormsCookiePath 
); 
var encryptedTicket = FormsAuthentication.Encrypt(ticket); 
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) 
{ 
    HttpOnly = true, 
    Secure = FormsAuthentication.RequireSSL, 
    Path = FormsAuthentication.FormsCookiePath, 
    Domain = FormsAuthentication.CookieDomain 
}; 
Response.AppendCookie(cookie); 
+0

Teşekkür: Ben aynı değere sahip öneriyoruz zaman aşımı mı? – Don

+1

Küçük düzeltme - 'Secure = FormsAuthentication.RequireSSL' olmalıdır,' HttpOnly' ayarı sadece çerezleri Javascript'ten gizler (düzgün tarayıcılarda, IE6 bunu desteklemez). – Keith

+0

@Keith, iyi yakalayın. Bunu işaret ettiğin için teşekkürler. çerezleri çalmak XSS saldırılarından koruyan olarak –