DevTrain

Autor: Hannes Preishuber

Login Security Control permanent anmelden

Das Login Control con ASP.NET 2.0 erlaubt es über die Option DisplayRememberMe=true dem Benutzer die Option einer dauerhaften Anmeldung zu geben. Dabei wird ein Cookie erstellt mit einer Lebenszeit von 50 Jahren. Aus Sicherheitsgründen hat Microsoft in der finalen Version von ASP.NET 2.0 ( gegenüber Beta 2) die Lifetime auf sensationelle 20 Minuten verkürzt. Das heist wenn man das Browser Fesnter schliesst und nach 21 Minuten wieder öffnet, muss man sich erneut anmelden. Anders ausgedrückt: dauerhaftes bzw persistent Login geht nicht mehr.

Neben dieser Änderung gibt es noch ein paar kleine aber gemeine Änderungen auf die ich bisher gestossen bin (siehe mein Weblog : http://weblogs.asp.net/hpreishuber/archive/2005/10/12/427324.aspx)

Nun zum Workaround. Im LoggedIn Event des Login Controls kann man einfach den Cookie neu erstellen und damit den 20 Minuten Cookie überschreiben.

Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs)
If CType(sender, Login).RememberMeSet Then
 Dim ticket As New FormsAuthenticationTicket(2, CType(sender, Login).UserName,  DateTime.Now, DateTime.Now.AddYears(50), True, "", FormsAuthentication.FormsCookiePath)
 Dim ticketEncrypted As String = FormsAuthentication.Encrypt(ticket)
 Dim cookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName,  ticketEncrypted)
 cookie.HttpOnly =
True
 cookie.Path = FormsAuthentication.FormsCookiePath
 cookie.Secure = FormsAuthentication.RequireSSL
 cookie.Expires = ticket.Expiration
 Response.Cookies.Clear()
 Response.Cookies.Add(cookie)
End If
End Sub

Danke an dieser Stelle an meinen Kollegen Olaf Lüder der dieses Problem als Bug gemeldet hat. Dort ist auch der C# Code beinhaltet. http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=3d3568a8-1000-430e-a3b8-40596bc7197d

Der angeführte Workaround des Development Teams (<forms timeout="43200" />)  funktioniert übrigens nicht.

 


Erfasst am: 15.10.2005 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=959
© Copyright 2003 ppedv AG - http://www.ppedv.de