FormsAuthentication-Klasse
Verwaltet Formularauthentifizierungsdienste für Webanwendungen. Diese Klasse kann nicht geerbt werden.
Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public NotInheritable Class FormsAuthentication
'Usage
Dim instance As FormsAuthentication
public sealed class FormsAuthentication
public ref class FormsAuthentication sealed
public final class FormsAuthentication
public final class FormsAuthentication
Hinweise
Mithilfe der Formularauthentifizierung können Benutzer und Kennwörter für Webanwendungen validiert werden, für die keine Windows-Authentifizierung erforderlich ist. Bei der Formularauthentifizierung werden Benutzerinformationen in einer externen Datenquelle gespeichert, z. B. in einer Membership-Datenbank oder in der Konfigurationsdatei für eine Anwendung. Sobald ein Benutzer authentifiziert wurde, verwaltet die Formularauthentifizierung ein Authentifizierungsticket in einem Cookie oder im URL, sodass authentifizierte Benutzer nicht bei jeder Anforderung Anmeldeinformationen angeben müssen.
Die Formularauthentifizierung wird aktiviert, indem das mode-Attribut des authentication-Konfigurationselements auf Forms festlegt wird. Sie können angeben, dass alle Anforderungen an eine Anwendung ein gültiges Benutzerauthentifizierungsticket enthalten müssen, indem Sie das authorization-Konfigurationselement so verwenden, dass es Anforderungen unbekannter Benutzer zurückweist. Dies wird im folgenden Beispiel veranschaulicht.
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
<authorization>
<deny user="?" />
</authorization>
</system.web>
Im oben genannten Beispiel ist für jede Anforderung für eine ASP.NET-Seite, die Bestandteil der Anwendung ist, ein gültiger Benutzername erforderlich, der durch die Formularauthentifizierung bereitgestellt wird. Wenn kein Benutzername vorhanden ist, wird die Anforderung an den konfigurierten LoginUrl umgeleitet.
Über die FormsAuthentication-Klasse kann auf Methoden und Eigenschaften zugegriffen werden, die Sie in einer Anwendung verwenden können, in der Benutzer authentifiziert werden. Die RedirectToLoginPage-Methode leitet einen Browser an den konfigurierten LoginUrl um, damit sich Benutzer an einer Anwendung anmelden können. Die RedirectFromLoginPage-Methode leitet einen authentifizierten Benutzer wieder an den ursprünglich angeforderten geschützten URL oder an den DefaultUrl um. Mit bestimmten Methoden können ggf. auch Formularauthentifizierungstickets verwaltet werden.
Beispiel
Im folgenden Codebeispiel wird die Datei Web.config für eine ASP.NET-Anwendung dargestellt, die den ASP.NET-Mitgliedschaftsanbieter für die Formularauthentifizierung verwendet und für die alle Benutzer authentifiziert werden müssen.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
Im folgenden Codebeispiel wird die Anmeldeseite für eine ASP.NET-Anwendung dargestellt, die Formularauthentifizierung und ASP.NET-Mitgliedschaft verwendet.
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">
Public Sub Login_OnClick(sender As Object, args As EventArgs)
If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
Else
Msg.Text = "Login failed. Please check your user name and password and try again."
End If
End Sub
</script>
<html>
<head>
<title>Login</title>
</head>
<body>
<form runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR>
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR>
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer.
</form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">
public void Login_OnClick(object sender, EventArgs args)
{
if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
</script>
<html>
<head>
<title>Login</title>
</head>
<body>
<form runat="server">
<h3>Login</h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR>
Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR>
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer.
</form>
</body>
</html>
.NET Framework-Sicherheit
- AspNetHostingPermission Zur Verwendung der FormsAuthentication-Klasse in einer Hostumgebung. Anforderungswert: LinkDemand. Berechtigungswert: Minimal.
Vererbungshierarchie
System.Object
System.Web.Security.FormsAuthentication
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
FormsAuthentication-Member
System.Web.Security-Namespace