Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

ASP.NET Support Voice Column

Einführung

Willkommen bei der Spalte Microsoft ASP.NET Support Voice! Ich bin Nilay B. Shah beim ASP.NET Entwicklersupportteam. Ich arbeite seit mehr als eineinhalb Jahren mit ASP.NET Unterstützung zusammen. Die Formularauthentifizierung ist wirklich ein cooles Authentifizierungsfeature. In diesem Artikel werden einige Probleme behandelt, die Benutzer mit der Formularauthentifizierung als verwirrend empfunden haben, z. B. die Beziehung des Formularauthentifizierungstickets und des Formularauthentifizierungscookies und deren relevanten Einstellungen. Ich möchte Jerry Orman, technischer Leiter für das ASP.NET Supportteam, für seine unglaubliche Hilfe danken!

Personen fragen sich manchmal über die Formularauthentifizierung "Tickets" und "Cookies", da sie eng miteinander verbunden sind. Ich bin auf Fragen wie diese gestoßen: Kann jemand den Unterschied zwischen dem Ablauf des Cookies und dem Ablauf des Tickets erklären? Wenn das Cookie abläuft, wird der Benutzer zur Anmeldeseite umgeleitet. Was geschieht, wenn das Ticket abläuft? Läuft auch das Cookie ab? Was aktualisiert SlidingUpdate tatsächlich?

Ich werde mich in diesem Artikel auf diese beiden Aspekte der Formularauthentifizierung konzentrieren, um die folgenden Fragen zu beantworten:

  • Was sind Formularauthentifizierungsticket und Formularauthentifizierungscookies? Wie hängen sie zusammen?

  • Welche Rolle spielt ein Ticket in der Formularauthentifizierung?

  • Wie hängen Cookieablauf und Ticketablauf zusammen?

  • Wie funktioniert der gleitende Ablauf im Kontext von Formularauthentifizierungsticket und Formularauthentifizierungscookie?

  • Wo kann die Timeouteigenschaft des Formularauthentifizierungscookies und formularauthentifizierungstickets festgelegt werden?

  • Problemszenario: Bei der Formularauthentifizierung kann ein Timeout auftreten, bevor der in der Konfigurationsdatei festgelegte Timeout-Attributwert liegt.

Was sind Formularauthentifizierungsticket und Formularauthentifizierungscookies? Wie hängen sie zusammen?

Das Formularauthentifizierungscooky ist nichts anderes als der Container für das Formularauthentifizierungsticket. Das Ticket wird als Wert des Formularauthentifizierungscookies bei jeder Anforderung übergeben und von der Formularauthentifizierung auf dem Server verwendet, um einen authentifizierten Benutzer zu identifizieren.

Wenn wir uns jedoch für die Verwendung der cookielosen Formularauthentifizierung entscheiden, wird das Ticket in der URL in einem verschlüsselten Format übergeben. Cookielose Formularauthentifizierung wird verwendet, da manchmal die Clientbrowser Cookies blockieren. Dieses Feature wurde im Microsoft .NET Framework 2.0 eingeführt.

Weitere Informationen finden Sie auf der folgenden Msdn-Website (Microsoft Developer Network):

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Welche Rolle spielt ein Ticket in der Formularauthentifizierung?

Das Formularauthentifizierungsticket wird verwendet, um der ASP.NET Anwendung mitzuteilen, wer Sie sind. Daher ist Ticket ein Baustein der Sicherheit der Formularauthentifizierung.

Das Ticket wird mit dem <machineKey> Konfigurationselement der Machine.config-Datei des Servers verschlüsselt und signiert. ASP.NET 2.0 verwendet den decryptionKey und das neue Entschlüsselungsattribut des <machineKey> Elements, um Formularauthentifizierungstickets zu verschlüsseln. Mit dem Entschlüsselungsattribut können Sie den zu verwendenden Verschlüsselungsalgorithmus angeben. ASP.NET 1.1 und 1.0 verwenden die 3DES-Verschlüsselung, die nicht konfigurierbar ist. Die Manipulation des Ticketwerts wird durch einen Fehler beim Entschlüsseln des Tickets auf dem Server bestimmt. Dadurch wird der Benutzer zur Anmeldeseite umgeleitet.


Wenn die Anwendung in einer Webfarm bereitgestellt wird, müssen Sie sicherstellen, dass die Konfigurationsdateien auf jedem Server denselben Wert für die Attribute validationKey und decryptionKey im <machineKey> Tag verwenden, die für das Hashing und die Entschlüsselung des Tickets verwendet werden. Sie müssen dies tun, da Sie nicht garantieren können, welcher Server aufeinanderfolgende Anforderungen verarbeitet. Weitere Informationen zur FormsAuthenticationTicket-Verschlüsselung und zur Webfarmbereitstellung finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

Formularauthentifizierungstickets können mithilfe der FormsAuthenticationTicket-Klasse manuell generiert werden. Weitere Informationen finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

Wie hängen Cookieablauf und Ticketablauf zusammen?

Im Falle eines nicht persistenten Cookies, wenn das Ticket abgelaufen ist, läuft auch das Cookie ab, und der Benutzer wird zur Anmeldeseite weitergeleitet. Wenn das Ticket andererseits als persistent gekennzeichnet ist und das Cookie auf der Clientbox gespeichert ist, können Browser dasselbe Authentifizierungscooky verwenden, um sich jederzeit bei der Website anzumelden. Wir können jedoch die FormsAuthentication.SignOut-Methode verwenden, um persistente oder nicht persistente Cookies explizit zu löschen.

Weitere Informationen zur FormsAuthentication.SignOut-Methode finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxBei der cookielosen Formularauthentifizierung geht das Ticket verloren, wenn der Browser geschlossen wird, und bei der nächsten Anforderung wird ein neues Ticket generiert.

Wie funktioniert der gleitende Ablauf im Kontext von Formularauthentifizierungsticket und Formularauthentifizierungscookie?

Der gleitende Ablauf funktioniert genau auf die gleiche Weise!

Nehmen wir ein Beispiel: Wenn auf die Anmeldeseite um 17:00 Uhr zugegriffen wird, sollte sie um 17:10 Uhr ablaufen, wenn das Timeout-Attribut 10 ist und das slidingExpiration-Attribut auf TRUE festgelegt ist. Wenn nun eine Webseite um 17:05 00:00:00 Uhr erneut durchsucht wird, wird das Timeout für Cookies und Tickets auf 17:15 00:00:00 Uhr zurückgesetzt.

Hinweis Wenn auf die Webseite zugegriffen wird, bevor die Hälfte der Ablaufzeit verstreicht, wird die Ablaufzeit des Tickets nicht zurückgesetzt. Wenn beispielsweise um 17:04 Uhr erneut auf eine Webseite zugegriffen wird, werden die Cookies und das Tickettimeout nicht zurückgesetzt.

Weitere Informationen finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Wo kann der Timeoutwert des Formularauthentifizierungscookies und des Formularauthentifizierungstickets festgelegt werden?

Die einzige Einstellung, die Sie vornehmen können, ist in der Web.config-Datei oder der Machine.config-Datei in den <Formularen> Tag. Diese Änderung bestimmt den Timeoutzeitraum der Formularauthentifizierung im Kontext eines Tickets oder Cookies, es sei denn, das Ticket wird manuell generiert.


<!-- Forms-Attribute:
name="[Cookiename]" – Legt den Namen des Cookies fest, das für die Formularauthentifizierung verwendet wird.
loginUrl="[url]" – Legt die URL fest, an die der Client zur Authentifizierung umgeleitet werden soll.
protection="[Alle|Keine|Verschlüsselung|Validierung]" – Legt den Schutzmodus für Daten im Cookie fest.
timeout="[minutes]" – Legt die Dauer für die Gültigkeit des Cookies fest (zurücksetzen bei jeder Anforderung).
path="/" – Legt den Pfad für das Cookie fest.
requireSSL="[true|false]" – Soll das Formularauthentifizierungscooky nur über SSL gesendet werden?
slidingExpiration="[true|false]" – Sollten das Formularauthentifizierungscookie und das Ticket erneut ausgestellt werden, wenn sie bald ablaufen?
--> Weitere Informationen finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxWenn das Ticket manuell mithilfe der FormsAuthenticationTicket-Klasse generiert wird, kann das Timeout über das Expiration-Attribut festgelegt werden. Dieser Wert überschreibt den in Konfigurationsdateien angegebenen Timeout-Attributwert.

Weitere Informationen zu FormsAuthenticationTicket-Mitgliedern finden Sie auf der folgenden MSDN-Website:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Problemszenario: Bei der Formularauthentifizierung kann ein Timeout auftreten, bevor der in der Konfigurationsdatei festgelegte Timeout-Attributwert liegt.

Wenn das Formularauthentifizierungsticket manuell generiert wird, überschreibt die Timeouteigenschaft des Tickets den in der Konfigurationsdatei festgelegten Wert. Wenn dieser Wert kleiner als der Wert in der Konfigurationsdatei ist, läuft das Formularauthentifizierungsticket daher ab, bevor der Wert des Timeout-Attributs der Konfigurationsdatei liegt und umgekehrt. Angenommen, die <Formulare>Timeout-Attribut ist in der Web.config-Datei auf 30 festgelegt und der Wert für Ablauf des Tickets auf 20 Minuten festgelegt. In diesem Fall läuft das Formularauthentifizierungsticket nach 20 Minuten ab, und der Benutzer muss sich danach erneut anmelden.

Verwandte Links

910439 Problembehandlung bei der Formularauthentifizierung
 

301240 Implementieren der formularbasierten Authentifizierung in Ihrer ASP.NET-Anwendung mithilfe von C# .NET
 

Ich hoffe, dass Sie diese Informationen hilfreich fanden, um einige der Verwirrungen zu erleichtern, die mit ASP.NET Formularauthentifizierungsticket und Cookie verbunden sind. Denken Sie daran, dass die Support Voice-Spalten für Sie geeignet sind.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×