Exemplarische Vorgehensweise: Verwalten von Websitebenutzern mit Rollen
Aktualisiert: November 2007
Viele ASP.NET-Anwendungen schließen eine Mitgliedschaft ein – also die Authentifizierung von Benutzern, damit diese Zugriff auf beschränkte Ressourcen erhalten, beispielsweise auf auf Mitglieder beschränkte Seiten. Wenn die Anwendung mehrere Benutzer unterstützt oder sich die Liste der Benutzer mit der Zeit wahrscheinlich ändert, erwägen Sie die Erstellung von Rollen zur Verwaltung des Benutzerzugriffs. Eine Rolle ist der Name einer Gruppe, z. B. Manager, Vertrieb oder Mitglieder. Nachdem Sie Rollen erstellt haben, können Sie einer Rolle einzelne Benutzer zuweisen. Danach können Sie einer Rolle Berechtigungen gewähren, und jeder Benutzer in dieser Rolle erbt die von Ihnen zugewiesene Berechtigung. Rollen sind deshalb eine effiziente Möglichkeit zum Verwalten der Berechtigungen für Benutzergruppen.
In dieser exemplarischen Vorgehensweise werden die folgenden Themen behandelt:
Erstellen von Rollen für eine Anwendung.
Zuweisen von Benutzern zu Rollen.
Erstellen von Regeln (Berechtigungen), die selektiv den Zugriff auf Seiten für unterschiedliche Regeln gewähren oder verweigern.
Programmgesteuertes Bestimmen, ob ein Benutzer zu einer bestimmten Rolle gehört und zu welchen Rollen der aktuelle Benutzer gehört.
Vorbereitungsmaßnahmen
Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Visual Studio
.NET Framework
Lokal auf dem Computer installiertes IIS
Lokal auf dem Computer installierte SQL Server Express Edition
Eine Möglichkeit zum Identifizieren einzelner Benutzer
Hinweis: In Arbeitsanwendungen können Sie Benutzer auf verschiedene Weisen identifizieren, z. B. anhand des Windows-Benutzerkontos. In dieser exemplarischen Vorgehensweise identifizieren Benutzer sich jedoch durch das Anmelden bei der Website selbst. Deshalb erfordert diese exemplarische Vorgehensweise, dass Sie eine Website so konfiguriert haben, dass die ASP.NET-Mitgliedschaft verwendet wird. Wenn Ihre Website bereits mit einer Mitgliedschaft konfiguriert ist, können Sie diese Website als Ausgangspunkt für diese exemplarische Vorgehensweise verwenden.
Konfigurieren von Website, Mitgliedschaft und Rollen
Bevor Sie mit ASP.NET-Rollen arbeiten, benötigen Sie eine Website, die so konfiguriert ist, dass die Mitgliedschaft und das Einrichten von Rollen aktiviert sind. Wenn Sie das Thema Exemplarische Vorgehensweise: Erstellen einer Website mit Mitgliedschaft und Benutzeranmeldung abgeschlossen haben, können Sie die Website verwenden, die Sie in jener exemplarischen Vorgehensweise konfiguriert haben.
Wenn Ihnen noch keine Website zur Verfügung steht, gehen Sie folgendermaßen vor, um eine zu erstellen. Fahren Sie andernfalls mit dem nächsten Abschnitt "Erstellen von Ordnern für auf Mitglieder beschränkte Seiten" fort.
So erstellen Sie eine lokale IIS-Website
Öffnen Sie Visual Studio.
Klicken Sie im Menü Datei auf Neue Website.
Das Dialogfeld Neue Website wird angezeigt.
Wählen Sie unter Von Visual Studio installierte Vorlagen die Option ASP.NET-Website aus.
Wählen Sie im Listenfeld Speicherort den Eintrag Dateisystem aus.
Klicken Sie auf Durchsuchen, und wählen Sie dann ein Verzeichnis für die Anwendung aus, z. B. C:\RolesWebSite.
Klicken Sie im Feld Sprachen auf die Programmiersprache, mit der Sie arbeiten möchten.
Die ausgewählte Programmiersprache wird zur Standardsprache für die Website. Sie können jedoch die Programmiersprache für jede Seite einzeln festlegen.
Klicken Sie im Dialogfeld Neue Website auf OK.
Visual Web Developer erstellt die Website und die neue Seite Default.aspx.
Erstellen von Ordnern für auf Mitglieder beschränkte Seiten
Damit Sie mit Rollen arbeiten können, müssen Sie zwei Ordner erstellen, MemberPages und GuestPages, in denen Sie Seiten mit beschränktem Zugriff ablegen können.
Hinweis: |
---|
Wenn Sie die Website aus der exemplarischen Vorgehensweise zur Mitgliedschaft erneut verwenden, haben Sie diesen Ordner wahrscheinlich bereits erstellt und können Schritt 1 der folgenden Verfahrensweise überspringen. |
So erstellen Sie Ordner für beschränkten Zugriff
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Stammverzeichnis der Website, klicken Sie auf Neuer Ordner, und geben Sie dem Ordner den Namen MemberPages.
Dieser Ordner enthält eine Seite, auf die nur einige der Benutzer zugreifen können.
Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis der Website, klicken Sie auf Neuer Ordner, und geben Sie dem Ordner den Namen GuestPages.
Dieser Ordner enthält eine Seite, auf die jeder angemeldete Benutzer zugreifen kann (anonyme Benutzer jedoch nicht).
Konfigurieren der Website für Mitgliedschaft und Rollen
Nach dem Erstellen der einfachen Website können Sie sie für die Verwendung von Mitgliedschaft und Rollen konfigurieren.
So konfigurieren Sie die Website für Mitgliedschaft und Rollen
Klicken Sie im Menü Website auf ASP.NET-Konfiguration.
Wählen Sie die Registerkarte Sicherheit aus, klicken Sie auf den Link Verwenden Sie den Setup-Assistenten für die Sicherheit, um die Sicherheit Schritt für Schritt zu konfigurieren, und klicken Sie danach auf Weiter.
Fahren Sie mit Schritt 2 des Assistenten fort, und wählen Sie die Option Aus dem Internet aus.
Der Assistent zeigt eine Seite an, auf der Sie die von Ihrer Website zu verwendende Authentifizierungsmethode auswählen können.
Diese Option gibt an, dass die Anwendung Formularauthentifizierung verwendet, bei der sich Benutzer bei der Anwendung über eine Anmeldeseite anmelden, die Sie später in dieser exemplarischen Vorgehensweise erstellen.
Klicken Sie auf Weiter.
Der Assistent zeigt eine Meldung an, dass Benutzerinformationen über Erweiterte Anbietereinstellungen gespeichert werden. Die Anwendung verwendet den Standardanbieter, der Mitgliedschaftsinformationen in einer SQL Server Express Edition-Datenbankdatei im Ordner App_Data der Website speichert.
Klicken Sie auf Weiter.
Wählen Sie in Schritt 4: Rollen definieren das Kontrollkästchen Rollen für diese Website aktivieren aus, und klicken Sie dann auf Weiter.
Erstellen Sie nach Aufforderung zwei Rollen, members und guests, und klicken Sie dann auf Weiter.
Erstellen Sie in Schritt 5: Neue Benutzer hinzufügen drei Benutzer: member1, guest1 und memberGuest.
Sie können beliebige sichere Kennwörter zuweisen, denken Sie aber daran, dass Sie sich an diese erinnern können müssen. Kennwörter müssen aus mindestens 7 Zeichen bestehen, und mindestens ein Zeichen muss nicht alphanumerisch sein. Verwenden Sie als E-Mail-Adresse Ihre eigene. (Sie senden in dieser exemplarischen Vorgehensweise keine E-Mail-Nachrichten.)
Hinweis: Schließen Sie das Websiteverwaltungs-Tool noch nicht.
Die von Ihnen erstellte Website gestattet Benutzern ihren Rollen entsprechend Zugriff auf verschiedene Seiten. Deshalb müssen Sie einige Zugriffsregeln erstellen, mit denen bestimmt wird, welche Rollen Zugriff auf welche Ordner haben.
So richten Sie Zugriffsregeln für die Websiteordner ein
Klicken Sie im Sicherheits-Assistenten des Websiteverwaltungs-Tools auf Weiter.
In Schritt 6: Neue Zugriffsregeln hinzufügen wird eine Seite angezeigt, auf der Sie Regeln erstellen können, mit denen bestimmt wird, welche Rollen (oder Benutzer) Zugriff auf die Seiten der Website erhalten.
Erweitern Sie unter Verzeichnis für diese Regel auswählen den Stammknoten, und klicken Sie dann auf GuestPages.
Wählen Sie unter Regel bezieht sich auf die Option Anonyme Benutzer aus.
Wählen Sie unter Berechtigung die Option Verweigern aus.
Mit der gerade erstellten Regel verweigern Sie anonymen Benutzern (also Benutzern, die sich nicht angemeldet haben) den Zugriff.
Klicken Sie auf Regel hinzufügen.
Die neue Regel wird im Raster im unteren Bereich der Seite angezeigt. Wenn ein Benutzer eine Seite aus dem Verzeichnis GuestPages anfordert, werden die Regeln der Reihe nach überprüft (von oben nach unten), um festzustellen, ob dem Benutzer der Zugriff auf die Seite gestattet ist. Wenn der Benutzer nicht angemeldet ist, werden die Seiten in diesem Ordner nicht angezeigt.
Klicken Sie unter Verzeichnis für diese Regel auswählen auf MemberPages.
Wählen Sie unter Regel bezieht sich auf die Option Rolle aus, und klicken Sie dann in der Dropdownliste auf members.
Wählen Sie unter Berechtigung die Option Zulassen aus.
Die von Ihnen erstellte Regel gewährt eine Zugriffsberechtigung auf den Ordner MemberPages für jeden, der zur Rolle members gehört.
Klicken Sie auf Regel hinzufügen.
Klicken Sie unter Verzeichnis für diese Regel auswählen auf MemberPages.
Wählen Sie unter Regel bezieht sich auf die Option Alle Benutzer aus.
Wählen Sie unter Berechtigung die Option Verweigern aus.
Klicken Sie auf Regel hinzufügen.
Mit der zweiten Regel für den Ordner MemberPages wird gewährleistet, dass niemand, außer den Benutzern, die zur Rolle members gehören, Zugriff auf den Ordner erhält. Die Regeln werden entsprechend der Anzeigereihenfolge im Raster verarbeitet (von oben nach unten).
Der erste Regel (Zulassen) gestattet Benutzern den Zugriff, die zur Rolle members gehören. Mit der zweiten Regel (Verweigern) wird der Zugriff für alle anderen Benutzer verweigert. Sie können für die Anwendung eine beliebige Anzahl von Regeln zum Zulassen und Verweigern erstellen. Wenn ein Benutzer eine Seite aus dem Verzeichnis MemberPages anfordert, werden die Regeln der Reihe nach angewendet (von oben nach unten), um festzustellen, ob dem Benutzer der Zugriff auf die Seite gestattet ist.
Klicken Sie auf Fertig stellen, um zur Registerkarte Sicherheit zurückzukehren.
Hinweis: Schließen Sie das Websiteverwaltungs-Tool noch nicht.
Zuweisen von Benutzern zu Rollen
Sie müssen noch einen Konfigurationsschritt ausführen: Zuweisen der Ihnen erstellten Benutzer zu den Rollen.
So weisen Sie den Rollen Benutzer zu
Klicken Sie auf der Registerkarte Sicherheit des Websiteverwaltungs-Tools unter Benutzer auf Benutzer verwalten.
Klicken Sie in der Zeile für guest1 auf Rollen bearbeiten.
Das Feld Rollen wird mit einer Liste verfügbarer Rollen gefüllt.
Wählen Sie das Kontrollkästchen guests aus, um Benutzer guest1 der Rolle guests zuzuweisen.
Klicken Sie in der Zeile für member1 auf Rollen bearbeiten, und weisen Sie den Benutzer member1 der Rolle members zu.
Mit der gleichen Technik weisen Sie den Benutzer memberGuest sowohl der Rolle guests als auch der Rolle members zu.
Schließen Sie das Websiteverwaltungs-Tool, und gehen Sie dann wie folgt vor:
Klicken Sie im Projektmappen-Explorer auf das Aktualisierungssymbol.
Klicken Sie im Menü Website auf ASP.NET-Konfiguration, um das Websiteverwaltungs-Tool erneut zu starten.
So wird sichergestellt, dass die vom Websiteverwaltungs-Tool verwendete Verbindung zur Mitgliedschaftsdatenbank geschlossen wird.
Schließen Sie das Websiteverwaltungs-Tool wieder.
Hinzufügen von Seiten mit beschränktem Zugriff
Wenn Sie Ihre Einstellungen für Mitgliedschaft und Rollen testen möchten, müssen Sie für Benutzer eine Möglichkeit zum Anmelden erstellen, damit Sie sie identifzieren können. Sie müssen auch einige Webseiten erstellen, von denen aus Sie die von Ihnen erstellten Zugriffsregeln testen können.
So erstellen Sie eine Standardseite für alle Benutzer
Wechseln Sie zu Visual Studio.
Öffnen Sie die Seite Default.aspx, oder wechseln Sie zu dieser, und wechseln Sie dann in die Entwurfsansicht.
Wenn keine Seite Default.aspx vorhanden ist, fügen Sie diese dem Stammverzeichnis der Website hinzu.
Hinweis: Stellen Sie sicher, dass die Seite den Namen Default.aspx hat. Dieser Name wird später in der exemplarischen Vorgehensweise verwendet.
Fügen Sie eine Überschrift mit Text hinzu, z. B. Welcome!
Ziehen Sie in der Toolbox aus der Gruppe Anmelden ein LoginStatus-Steuerelement auf die Seite.
Wenn auf das LoginStatus-Steuerelement geklickt wird, gelangen Benutzer automatisch zur Seite Login.aspx, wenn sie sich noch nicht angemeldet haben.
Ziehen Sie in der Toolbox aus der Gruppe Anmelden ein LoginName-Steuerelement auf die Seite. Legen Sie die FormatString-Eigenschaft auf "Hello {0}" fest.
Im LoginName-Steuerelement wird der Name des Benutzers angezeigt, wenn der Benutzer sich angemeldet hat.
Ziehen Sie in der Toolbox aus der Gruppe Standard ein HyperLink-Steuerelement auf die Seite. Legen Sie im Bereich Eigenschaften für das HyperLink-Steuerelement die Text-Eigenschaft auf Guests and Members und die href-Eigenschaft auf ~/GuestPages/Guests.aspx fest.
Hinweis: Sie erstellen später in dieser exemplarischen Vorgehensweise die Seite Guests.aspx.
Ziehen Sie in der Toolbox aus der Gruppe Standard ein weiteres HyperLink-Steuerelement auf die Seite. Legen Sie im Bereich Eigenschaften für das HyperLink-Steuerelement die Text-Eigenschaft auf Members und die href-Eigenschaft auf ~/MembersPage/Members.aspx fest.
Hinweis: Sie erstellen später in dieser exemplarischen Vorgehensweise die Seite Members.aspx.
Sie haben jetzt eine Homepage, die für alle Benutzer verfügbar ist. Von hier aus können Benutzer über Verknüpfungen auf zusätzliche Seiten gelangen, von denen einige mit Zugriffsbeschränkungen versehen sind. Im nächsten Schritt erstellen Sie eine einfache Anmeldeseite.
So erstellen Sie eine Anmeldeseite
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Stammordner der Website, und wählen Sie Neues Element hinzufügen aus. Fügen Sie der Website ein Web Form mit dem Namen Login.aspx hinzu.
Wechseln Sie auf der Seite Login.aspx zur Entwurfsansicht.
Ziehen Sie in der Toolbox aus der Gruppe Anmelden ein Login-Steuerelement auf die Seite.
Legen Sie im Bereich Eigenschaften für das Login-Steuerelement die DestinationPageUrl-Eigenschaft auf ~/Default.aspx fest.
Abschließend müssen Sie einige Seiten erstellen, die den zugriffsbeschränkten Inhalt der Website darstellen.
So erstellen Sie zugriffsbeschränkte Seiten
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner GuestPages, klicken Sie auf Neues Element hinzufügen, und fügen Sie in diesem Ordner ein neues Web Form mit dem Namen Guests.aspx hinzu.
Wechseln Sie zur Entwurfsansicht, und fügen Sie der Seite Guests.aspx eine Überschrift hinzu, z. B. Welcome to the Guests page!
Ziehen Sie in der Toolbox aus der Gruppe Standard ein HyperLink-Steuerelement auf die Seite. Legen Sie im Bereich Eigenschaften für das HyperLink-Steuerelement die Text-Eigenschaft auf Home und die href-Eigenschaft auf ~/Default.aspx fest.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner MemberPages, wählen Sie Neues Element hinzufügen aus, und fügen Sie ein neues Web Form mit dem Namen Members.aspx hinzu.
Wechseln Sie zur Entwurfsansicht, und fügen Sie der Seite Members.aspx eine Überschrift hinzu, z. B. Welcome to the Members page!
Ziehen Sie in der Toolbox aus der Gruppe Standard ein HyperLink-Steuerelement auf die Seite.
Legen Sie im Bereich Eigenschaften für das HyperLink-Steuerelement die Text-Eigenschaft auf Home und die href-Eigenschaft auf ~/Default.aspx fest.
Sie müssen den Seiten keinen Code hinzufügen, um den Zugriff auf sie zu beschränken. Sie sind zugriffsbeschränkt, da sie sich in Ordnern befinden, die mit Zugriffsregeln geschützt werden.
Testen von Rollen
Die Website kann jetzt getestet werden.
So testen Sie Rollen
Wechseln Sie zur Seite Default.aspx, und drücken Sie dann STRG+F5, um die Seite auszuführen.
Klicken Sie auf Guests and Members.
Sie werden zur Seite Login.aspx umgeleitet, da Sie versuchen, auf eine Seite zuzugreifen, die keine anonymen Benutzer erlaubt.
Melden Sie sich als guest1 an, der zur Rolle guests gehört.
Nachdem Sie sich erfolgreich angemeldet haben, werden Sie zur Seite Guests.aspx umgeleitet.
Klicken Sie auf Home, um zur Seite Default.aspx zurückzukehren.
Auf der Seite Default.aspx wird der Text Hello, guest1 dort angezeigt, wo Sie das LoginName-Steuerelement platziert haben. Außerdem hat sich der Text im LoginStatus-Steuerelement von Anmelden in Abmelden geändert, da Sie jetzt als guest1 angemeldet sind.
Klicken Sie auf Guests and Members.
Dieses Mal gelangen Sie direkt auf die Seite Guests.appx, da Sie bereits als Benutzer mit Gastrolle angemeldet sind.
Klicken Sie auf Home, um zur Seite Default.aspx zurückzukehren.
Klicken Sie auf Members.
Sie werden zur Seite Login.aspx umgeleitet, da guest1 keine Berechtigungen für die Seite Members.aspx hat.
Melden Sie sich entweder als member1 oder als memberGuest an.
Sie werden zur Seite Members.aspx umgeleitet, da Sie jetzt als Benutzer in der Rolle members angemeldet sind.
Klicken Sie auf Home, um zur Seite Default.aspx zurückzukehren.
Auf der Seite wird jetzt der neue Benutzername angezeigt.
Nächste Schritte
In dieser exemplarischen Vorgehensweise werden die Grundfunktionen der ASP.NET-Rollenverwaltung veranschaulicht. Sie können aber auch weitere Rollenverwaltungsfeatures testen. Auf diese Weise können Sie beispielsweise folgende Vorgänge durchführen:
Arbeiten mit Windows-Rollen anstelle von benutzerdefinierten Rollen, die Sie im Mitgliedschaftssystem erstellen.
Programmgesteuertes Arbeiten mit Rollen. Ausführliche Informationen finden Sie unter Verwalten der Autorisierung mithilfe von Rollen.
Alternativ können Sie eine benutzerdefinierten Anbieter erstellen, über den Sie einen bestehenden oder einen benutzerdefinierten Datenspeicher mit Informationen zu Mitgliedschaft und Rollen verwenden können. Weitere Informationen finden Sie unter Implementieren eines Rollenanbieters.
Übernehmen von Zugriffsregeln für Links, die in der Navigationsstruktur der Website angezeigt werden. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Filtern von Siteübersichtsknoten auf der Basis von Sicherheitsrollen.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen einer Website mit Mitgliedschaft und Benutzeranmeldung
Exemplarische Vorgehensweise: Filtern von Siteübersichtsknoten auf der Basis von Sicherheitsrollen
Konzepte
Grundlegende Informationen über die Rollenverwaltung