ASP.NET stellt robuste Anmeldefunktionalität für (Authentifizierung) ASP.NET-Webanwendungen bereit, ohne Programmierung erforderlich zu machen. Die standardmäßigen Visual Studio-Projektvorlagen für Webanwendungen und für Websites enthalten vordefinierte Seiten, die es Benutzern ermöglichen ein neues Konto zu registrieren, sich anzumelden und ihre Kennwörter zu ändern. Weitere Informationen zum Verwenden der integrierten Anmeldeseitenvorlagen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer ASP.NET-Website mit einfacher Benutzeranmeldung.
Sie können auch eigene Seiten erstellen, die Sie ASP.NET-Anmeldungssteuerelemente hinzufügen können, um die Anmeldefunktionalität hinzuzufügen. Um die Anmeldungssteuerelemente zu verwenden, erstellen Sie Webseiten und fügen ihnen dann die Anmeldungssteuerelemente aus der Toolbox hinzu.
In der Regel schränken Sie den Zugriff auf ASP.NET-Seiten ein, indem Sie sie in einen geschützten Ordner setzen. Sie konfigurieren dann den Ordner, um Zugriff für anonyme Benutzer (Benutzer, die nicht angemeldet sind) zu verweigern und Zugriff für authentifizierte (angemeldet) Benutzer zu gewähren. (Die Standardprojektvorlage für Webprojekte schließt einen Ordner namens Konten ein, der bereits dafür konfiguriert ist, Zugriff nur für angemeldete Benutzer zuzulassen.) Optional können Sie Benutzer Rollen zuweisen und dann Benutzer autorisieren, um je nach Rolle auf bestimmte Webseiten zuzugreifen.
In der Standardeinstellung werden Anmeldesteuerelemente in die ASP.NET-Mitgliedschaft und in die Formularauthentifizierung integriert, um die Benutzerauthentifizierung für eine Website zu automatisieren. Informationen über die Verwendung der ASP.NET-Mitgliedschaft und der Formularauthentifizierung finden Sie unter Einführung in die Mitgliedschaft.
Standardmäßig verwenden die ASP.NET-Anmeldungssteuerelemente Klartext über HTTP. Für sichere Übertragungen können Sie HTTPS mit SSL-Verschlüsselung verwenden. Weitere Informationen über SSL finden Sie unter Configuring SSL on a Web Server or a Web Site in der IIS-Dokumentation.
Hinweis |
|---|
Anmeldesteuerelemente können möglicherweise nicht ordnungsgemäß ausgeführt werden, wenn Method der ASP.NET-Webseite von POST (Standard) in GET geändert wurde. |
In diesem Thema wird jedes ASP.NET-Anmeldesteuerelement erläutert, und Links zur Referenzdokumentation des jeweiligen Steuerelements werden zur Verfügung gestellt.
Dieses Thema enthält folgende Abschnitte:
Wenn Sie mithilfe der Standard-Visual Studio-Vorlage eine Website oder eine Webanwendung erstellen, werden Seiten, die die Anmeldefunktionalität unterstützen, im Ordner Konto erstellt. Standardmäßig sind Seiten im Ordner Konto anonymen Benutzern nicht zugänglich, außer der Registrierungsseite und (Register.aspx) der Anmeldeseite (Login.aspx). Die Einstellungen, die den Zugriff auf Seiten im Ordner "Konto" definieren, werden in der Web.config-Datei in diesem Ordner konfiguriert. Die Einstellungen, die den Zugriff auf die Anmeldeseite definieren, werden in der Stamm-Web.config-Datei konfiguriert.
In der folgenden Abbildung ist der Inhalt des Ordners Konto dargestellt.
Konto-Ordner
In der folgenden Tabelle ist der Inhalt des Ordners Konto aufgeführt:
Seite | Beschreibungen |
|---|
Login.aspx | Ermöglichte es Benutzern, die ein Konto haben, sich durch das Angeben eines Benutzernamens und eines Kennworts anzumelden. Diese Seite enthält einen Link zur Registrierungsseite. Diese Seite Login.aspx ist für anonyme Benutzer zugreifbar. Enthält das Steuerelement Login. Die folgende Abbildung zeigt die Anmeldeseite im Browser.  |
Register.aspx | Ermöglicht es Benutzern, ein neues Konto zu registrieren und zu erstellen. Diese Seite ist nur für anonyme und authentifizierte Benutzer zugreifbar. Enthält das Steuerelement CreateUserWizard. Die folgende Abbildung zeigt die Seite zum Erstellen eines neuen Kontos (Registrierung) im Browser. |
ChangePassword.aspx | Ermöglicht es angemeldeten Benutzern, ihr Kennwort zu ändern. Diese Seite ist nur für authentifizierte Benutzer zugreifbar. Enthält das Steuerelement ChangePassword. Die folgende Abbildung zeigt die Seite der Kennwortänderung im Browser.  |
ChangePasswordSuccess.aspx | Zeigt eine Meldung an, die angibt, dass das Kennwort erfolgreich geändert wurde. Diese Seite ist nur für authentifizierte Benutzer zugreifbar. Diese Seite verwendet keine ASP.NET-Anmeldungssteuerelemente. |
Web.config | Enthält die Einstellungen, die Zugriff auf Seiten im Ordner Konto definieren |
Anmeldefunktionalität in der Gestaltungsvorlage
Wenn Sie mithilfe der Standard-Visual Studio-Vorlage eine Website oder eine Webanwendung erstellen, enthält Standardmasterseite (Seite.master) folgende Steuerelemente für die Anmeldefunktionalität.
Die Seite Site.master enthält auch einen Link zur Anmeldeseite, auf den alle Benutzer zugreifen können.
Speichern der Benutzeranmeldeinformationen
Anmeldedaten (Mitgliedschaft) werden in einer Datenbank gespeichert. Standardmäßig ist dies eine lokale Datenbank in der Datei ASPNETDB.mdf im Ordner App_Data der Webanwendung. Die Datenbank kann auf folgende Weisen erstellt werden:
Sie können Mitgliedschaft und Rollen, die die Datenbank automatisch erstellen, mithilfe des Websiteverwaltungs-Tools manuell konfigurieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer Website mit Mitgliedschaft und Benutzeranmeldung.
Wenn sich der erste Benutzer registriert und ein Konto erstellt, und wenn die Datenbank nicht bereits vorhanden ist, erstellt ASP.NET die Datenbank automatisch. Diese Option bietet keine Möglichkeit, Rollen für einen Benutzer anzugeben.
Mitgliedschaftsattribute ändern
Die Einstellungen für ASP.NET-Mitgliedschaft stehen im membership-Abschnitt der Stamm-Web.config-Datei. Im providers-Abschnitt können Sie Attribute ändern, wie z. B. die Anzahl der zuzulassenden ungültigen Anmeldeversuche, Kennwortlänge usw. Weitere Informationen finden Sie unter Einführung in die Mitgliedschaft.
Das Login-Steuerelement zeigt eine Benutzeroberfläche zur Benutzerauthentifizierung an. Das Login-Steuerelement enthält Textfelder für den Benutzernamen und das Kennwort sowie ein Kontrollkästchen, mit dem Benutzer angeben können, ob sie ihre Identität mithilfe der ASP.NET-Mitgliedschaft speichern möchten, damit die Authentifizierung beim nächsten Besuch der Site automatisch erfolgen kann.
Das Login-Steuerelement verfügt über Eigenschaften, mit denen eine benutzerdefinierte Anzeige sowie benutzerdefinierte Meldungen realisiert und Links zu anderen Seiten bereitgestellt werden können, auf denen Benutzer ihr Kennwort ändern oder ein vergessenes Kennwort wiederherstellen können. Das Login-Steuerelement kann als eigenständiges Steuerelement auf einer Haupt- oder Homepage oder auf einer gesonderten Anmeldeseite verwendet werden.
Bei Verwendung des Login-Steuerelements mit ASP.NET-Mitgliedschaft ist kein eigener Code für die Durchführung der Authentifizierung erforderlich. Wenn Sie jedoch eine eigene Authentifizierungslogik erstellen möchten, können Sie das Authenticate-Ereignis des Login-Steuerelements behandeln und benutzerdefinierten Authentifizierungscode hinzufügen.
Mit dem LoginView-Steuerelement können Sie unterschiedliche Informationen für anonyme und angemeldete Benutzer anzeigen. Das Steuerelement zeigt eine von zwei Vorlagen an: die AnonymousTemplate oder die LoggedInTemplate. Sie können den Vorlagen Markup und Steuerelemente hinzufügen, um anonymen und authentifizierten Benutzern jeweils die entsprechenden Informationen anzeigen.
Das LoginView-Steuerelement beinhaltet auch Ereignisse für ViewChanging und ViewChanged, mit denen Sie Handler schreiben können, die die Anmeldung des Benutzers und die Änderung des Status behandeln.
Das LoginStatus-Steuerelement zeigt nicht authentifizierten Benutzern einen Link zur Anmeldung, während authentifizierten Benutzern ein Link zur Abmeldung angezeigt wird. Über den Link zur Anmeldung gelangt der Benutzer zu einer Anmeldeseite. Mithilfe des Links zur Abmeldung wird die Identität des aktuellen Benutzers die eines anonymen Benutzers zurückgesetzt.
Sie können die Darstellung des LoginStatus-Steuerelements anpassen, indem Sie die LoginText-Eigenschaft und die LoginImageUrl-Eigenschaft festlegen.
Das LoginName-Steuerelement zeigt den Benutzernamen an, wenn sich der Benutzer mit der ASP.NET-Mitgliedschaft angemeldet hat. Wenn die Site stattdessen die integrierte Windows-Authentifizierung verwendet, zeigt das Steuerelement den Windows-Kontonamen des Benutzers an.
Mit dem PasswordRecovery-Steuerelement können Benutzer das Senden ihres Kennworts an die E-Mail-Adresse veranlassen, die sie beim Erstellen des Kontos angegeben haben. Das PasswordRecovery-Steuerelement sendet dem Benutzer eine E-Mail-Nachricht mit einem Kennwort.
Sie können ASP.NET-Mitgliedschaft so konfigurieren, dass Kennwörter mithilfe von nicht umkehrbarer Verschlüsselung gespeichert werden. In diesem Fall sendet das PasswordRecovery-Steuerelement nicht das ursprüngliche Kennwort an den Benutzer, sondern generiert stattdessen ein neues Kennwort.
Sie können die Mitgliedschaft auch für die Verwendung einer Sicherheitsfrage konfigurieren, die der Benutzer vor dem Wiederherstellen des Kennworts beantworten muss. Wenn Sie diese Möglichkeit nutzen, stellt das PasswordRecovery-Steuerelement dem Benutzer vor dem Wiederherstellen des Kennworts diese Frage und überprüft die Antwort.
Das PasswordRecovery-Steuerelement setzt voraus, dass die Anwendung über die Möglichkeit verfügt, E-Mail-Nachrichten an einen SMTP (Simple Mail Transfer Protocol)-Server weiterzuleiten. Sie können Text und Format der an den Benutzer zu sendenden E-Mail-Nachricht mithilfe der MailDefinition-Eigenschaft festlegen.
Hinweis |
|---|
In einer E-Mail-Nachricht übertragene Kennwortinformationen werden in Klartext gesendet. |
Das folgende Beispiel zeigt ein in einer ASP.NET-Seite deklariertes PasswordRecovery-Steuerelement, dessen MailDefinition-Eigenschafteneinstellungen auf eine benutzerdefinierte E-Mail-Nachricht festgelegt werden.
<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server"
SubmitButtonText="Get Password" SubmitButtonType="Link">
<MailDefinition From="administrator@Contoso.com"
Subject="Your new password"
BodyFileName="PasswordMail.txt" />
</asp:PasswordRecovery>
Das CreateUserWizard-Steuerelement sammelt Informationen zu potenziellen Benutzern. Standardmäßig fügt das CreateUserWizard-Steuerelement den neuen Benutzer zum ASP.NET-Mitgliedschaftssystem hinzu.
Das CreateUserWizard-Steuerelement erfasst die folgenden Benutzerinformationen:
Benutzername
Kennwort
Kennwortbestätigung
E-Mail-Adresse
Sicherheitsfrage
Sicherheitsantwort
Diese Informationen werden zur Benutzerauthentifizierung und, falls erforderlich, zum Wiederherstellen von Benutzerkennwörtern verwendet.
Im folgenden Beispiel wird eine typische ASP.NET-Deklaration für das CreateUserWizard-Steuerelement veranschaulicht:
<asp:CreateUserWizard ID="CreateUserWizard1" Runat="server"
ContinueDestinationPageUrl="~/Default.aspx">
<WizardSteps>
<asp:CreateUserWizardStep Runat="server"
Title="Sign Up for Your New Account">
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep Runat="server"
Title="Complete">
</asp:CompleteWizardStep>
</WizardSteps>
</asp:CreateUserWizard>
Mit dem ChangePassword-Steuerelement können Benutzer ihr Kennwort ändern. Der Benutzer muss zuerst das ursprüngliche Kennwort angeben und dann ein neues Kennwort erstellen und bestätigen. Wenn das ursprüngliche Kennwort richtig ist, wird das Benutzerkennwort in das neue Kennwort geändert. Das Steuerelement bietet auch über die Möglichkeit, eine E-Mail-Benachrichtigung über das neue Kennwort zu senden.
Das ChangePassword-Steuerelement enthält zwei vorlagenbasierte Ansichten, die dem Benutzer angezeigt werden. Die erste Vorlage, ChangePasswordTemplate, zeigt die Benutzeroberfläche an, die zum Erfassen der Daten verwendet wird, die zum Ändern des Benutzerkennworts benötigt werden. Die zweite Vorlage, SuccessTemplate, definiert die Benutzeroberfläche, die angezeigt wird, nachdem ein Benutzerkennwort erfolgreich geändert wurde.
Das ChangePassword-Steuerelement funktioniert sowohl mit authentifizierten als auch mit nicht authentifizierten Benutzern. Wenn ein Benutzer nicht authentifiziert ist, fordert das Steuerelement den Benutzer zur Eingabe eines Benutzernamens auf. Wenn der Benutzer authentifiziert ist, füllt das Steuerelement das Textfeld mit dem Anmeldenamen des Benutzers auf.
Konzepte
Weitere Ressourcen