Dienstprogramme bei der Formularauthentifizierung
Aktualisiert: November 2007
Zum Verwalten der Formularauthentifizierung können Sie statische Methoden der FormsAuthentication-Klasse verwenden. Die entsprechenden Methoden sind in der folgenden Tabelle aufgelistet.
Methode |
Beschreibung |
---|---|
Versucht, die Anmeldeinformationen aus dem konfigurierten Anmeldeinformationsspeicher anhand der angegebenen Anmeldeinformationen zu validieren. |
|
Erfordert ein verschlüsseltes Authentifizierungsticket aus einem HTTP-Cookie. Gibt eine Instanz der FormsAuthenticationTicket-Klasse zurück. |
|
Erfordert ein FormsAuthenticationTicket. Erzeugt eine Zeichenfolge mit einem verschlüsselten Authentifizierungsticket, das in einem HTTP-Cookie verwendet werden kann. |
|
Ruft ein verschlüsseltes Authentifizierungscookie als HttpCookie-Instanz ab. Das Cookie wird der Cookies-Auflistung nicht hinzugefügt. |
|
Gibt den Umleitungs-URL der Anforderung zurück, die die Umleitung zur Anmeldeseite verursacht hat. |
|
Erfordert ein Kennwort und eine Zeichenfolge zur Identifikation des Hashtyps. Erzeugt ein Hashkennwort, das sich in einer Konfigurationsdatei speichern lässt. |
|
Initialisiert die FormsAuthentication-Klasse durch Lesen der Konfigurationseinstellungen und Abrufen der Cookie- und Verschlüsselungswerte der aktiven Anwendung. |
|
Leitet einen authentifizierten Benutzer zum ursprünglich angeforderten URL um. |
|
Aktualisiert die gleitende Ablaufzeit für ein FormsAuthenticationTicket. |
|
Erstellt ein Authentifizierungsticket und fügt es an die Cookieauflistung der ausgehenden Antwort an. |
|
Entfernt das Authentifizierungsticket, indem für das Authentifizierungscookie oder den URL-Text ein leerer Wert festgelegt wird. Auf diese Weise werden sowohl permanente Cookies als auch Sitzungscookies gelöscht.
Wichtiger Hinweis:
Die SignOut-Methode entfernt zwar das Ticket aus der authentifizierten Browsersitzung, die Anwendung ist jedoch weiterhin für einen Wiederholungsangriff aus unerwünschter Quelle anfällig, bei dem per "Sniffing" ein Authentifizierungsticket ausspioniert wird. Informationen über einen Schutz vor Wiederholungsangriffen bei der Formularauthentifizierung finden Sie unter SignOut.
|
In der folgenden Tabelle sind nützliche Eigenschaften für die Verwaltung von Formularauthentifizierungstickets aufgeführt.
Eigenschaft |
Beschreibung |
---|---|
Ruft den Cookienamen der aktiven Anwendung ab. |
|
Ruft den Cookiepfad der aktiven Anwendung ab. |
|
Ruft einen Wert ab, der angibt, ob die Anwendung für die Formularauthentifizierung ohne Cookies konfiguriert ist. |
|
Ruft einen Wert ab, der angibt, ob die Anwendung für die Formularauthentifizierung ohne Cookies konfiguriert ist. |
|
Ruft den Wert der Domäne des Formularauthentifizierungscookies ab. |
|
Ruft den URL ab, auf den von der Formularauthentifizierung umgeleitet wird, wenn kein Umleitungs-URL angegeben wurde. |
|
Ruft den URL der Anmeldeseite ab, auf die von der Formularauthentifizierung umgeleitet wird. |
|
Ruft einen Wert ab, der angibt, ob Cookies mit Secure Sockets Layer (SSL) übermittelt werden müssen. |
|
Ruft einen Wert ab, der angibt, ob die gleitende Ablaufzeit aktiviert ist. |
|
Ruft einen Wert an, der angibt, ob authentifizierte Benutzer zu URLs in anderen Webanwendungen umgeleitet werden können, wenn das Formularauthentifizierungsticket nicht in einem Cookie gespeichert ist. |
Sie können die Methoden der FormsAuthentication-Klasse verwenden, um die Formularauthentifizierung anzupassen. Sie können diese Methoden auch im Handler für die Anmeldeseite verwenden, um nicht explizit Code für die Umleitung schreiben zu müssen. Das folgende Codebeispiel zeigt eine ASP.NET-Webseite, die den Benutzer authentifiziert und ihn zur angeforderten Seite umleitet.
<html>
<head>
<script language="VB" runat=server>
Sub SubmitBtn_Click(Source As Object, e As EventArgs)
' Try to authenticate credentials supplied by user.
If FormsAuthentication.Authenticate _
(UserName.Value, UserPassword.Value) Then
Dim ticket As New FormsAuthenticationTicket _
(UserName.Value, False, 5000)
FormsAuthentication.RedirectFromLoginPage _
(UserName.Value, Persist.Checked)
End If
End Sub
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
<html>
<head>
<script language="C#" runat=server>
void SubmitBtn_Click(Object Source, EventArgs e)
{
// Try to authenticate credentials supplied by user.
if (FormsAuthentication.Authenticate(UserName.Value,
UserPassword.Value))
{
FormsAuthenticationTicket ticket = new
FormsAuthenticationTicket(UserName.Value, false, 5000);
FormsAuthentication.RedirectFromLoginPage(UserName.Value,
Persist.Checked);
}
}
</script>
</head>
<body>
<form method=post runat=server>
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="UserName" runat=server/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="UserPassword" runat=server/>
</td>
</tr>
</table>
<input type="checkbox" id="Persist" runat=server/>
<!-- Use persistent cookie. -->
<br>
<input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
Anwendungen, die auf eine genaue Kontrolle der HTTP-Cookie-Eigenschaften angewiesen sind, verwenden zum Erstellen des Tickets und zum Ausführen der Umleitung benutzerdefinierten Code. In diesem Fall sollten Sie zur Verschlüsselung des Authentifizierungstickets die Verschlüsselungsmethoden der FormsAuthentication-Klasse verwenden.