DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
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.

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 15.10.2005
  Gültig bis: 13.01.2006
8 Ratings
Bewertung: 20,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG