Freigeben über


Teil 7: Mitgliedschaft und Autorisierung

von Jon Galloway

Der MVC Music Store ist eine Tutorialanwendung, die schrittweise erläutert, wie ASP.NET MVC und Visual Studio für die Webentwicklung verwendet werden.

Der MVC Music Store ist eine einfache Beispielspeicherimplementierung, die Musikalben online verkauft und grundlegende Websiteverwaltung, Benutzeranmeldung und Warenkorbfunktionen implementiert.

In dieser Tutorialreihe werden alle Schritte zum Erstellen der ASP.NET MVC Music Store-Beispielanwendung beschrieben. Teil 7 behandelt Mitgliedschaft und Autorisierung.

Unser Store Manager-Controller ist derzeit für jeden zugänglich, der unsere Website besucht. Ändern Wir dies, um die Berechtigung auf Websiteadministratoren einzuschränken.

Hinzufügen von AccountController und Ansichten

Ein Unterschied zwischen der vollständigen vorlage ASP.NET MVC 3-Webanwendung und der vorlage ASP.NET leeren MVC 3-Webanwendung besteht darin, dass die leere Vorlage keinen Kontocontroller enthält. Wir fügen einen Kontocontroller hinzu, indem wir einige Dateien aus einer neuen ASP.NET MVC-Anwendung kopieren, die aus der vollständigen vorlage ASP.NET MVC 3-Webanwendung erstellt wurde.

Erstellen Sie eine neue ASP.NET MVC-Anwendung mithilfe der vollständigen vorlage ASP.NET MVC 3-Webanwendung, und kopieren Sie die folgenden Dateien in die gleichen Verzeichnisse in unserem Projekt:

  1. Kopieren Von AccountController.cs in das Verzeichnis Controllers
  2. Kopieren von AccountModels in das Verzeichnis Models
  3. Erstellen Sie ein Kontoverzeichnis im Verzeichnis Views, und kopieren Sie alle vier Ansichten in

Ändern Sie den Namespace für die Controller- und Model-Klassen, sodass sie mit MvcMusicStore beginnen. Die AccountController-Klasse sollte den MvcMusicStore.Controllers-Namespace und die AccountModels-Klasse den MvcMusicStore.Models-Namespace verwenden.

Hinweis: Diese Dateien sind auch im MvcMusicStore-Assets.zip Download verfügbar, aus dem wir unsere Websiteentwurfsdateien zu Beginn des Tutorials kopiert haben. Die Mitgliedschaftsdateien befinden sich im Verzeichnis Code.

Die aktualisierte Lösung sollte wie folgt aussehen:

Screenshot des Bereichs

Hinzufügen eines Administratorbenutzers mit dem ASP.NET-Konfigurationsstandort

Bevor wir die Autorisierung auf unserer Website benötigen, müssen wir einen Benutzer mit Zugriff erstellen. Die einfachste Möglichkeit zum Erstellen eines Benutzers ist die Verwendung der integrierten ASP.NET-Konfigurationswebsite.

Starten Sie die ASP.NET-Konfigurationswebsite, indem Sie auf das Symbol in der Projektmappen-Explorer klicken.

Screenshot des fensters Projektmappen-Explorer mit hervorgehobenem Globus- und Hammersymbol in einem roten Rechteck.

Dadurch wird eine Konfigurationswebsite gestartet. Klicken Sie auf dem Startbildschirm auf die Registerkarte Sicherheit, und klicken Sie dann in der Mitte des Bildschirms auf den Link "Rollen aktivieren".

Screenshot der Konfigurationswebsite mit dem Abschnitt

Klicken Sie auf den Link "Rollen erstellen oder verwalten".

Screenshot der Konfigurationswebsite mit dem Abschnitt

Geben Sie "Administrator" als Rollennamen ein, und klicken Sie auf die Schaltfläche Rolle hinzufügen.

Screenshot des Konfigurationsfensters mit administrator im Feld

Klicken Sie auf die Schaltfläche Zurück, und klicken Sie dann auf der linken Seite auf den Link Benutzer erstellen.

Screenshot der Konfigurationswebsite mit dem Abschnitt

Füllen Sie die Benutzerinformationsfelder auf der linken Seite mit den folgenden Informationen aus:

Feld Wert
Benutzername Administrator
Kennwort password123!
Kennwort bestätigen password123!
E-Mail (Jede E-Mail-Adresse funktioniert)
Sicherheitsfrage (ganz nach Belieben)
Sicherheitsantwort (ganz nach Belieben)

Hinweis: Sie können natürlich ein beliebiges Kennwort verwenden. Die Standardmäßigen Kennwortsicherheitseinstellungen erfordern ein Kennwort, das 7 Zeichen lang ist und ein nicht alphanumerisches Zeichen enthält.

Wählen Sie die Rolle Administrator für diesen Benutzer aus, und klicken Sie auf die Schaltfläche Benutzer erstellen.

Screenshot der Konfigurationswebsite mit dem Abschnitt

An diesem Punkt sollte eine Meldung angezeigt werden, die angibt, dass der Benutzer erfolgreich erstellt wurde.

Screenshot der Konfigurationswebsite mit einer Meldung, dass die Erstellung des Benutzerkontos erfolgreich abgeschlossen wurde.

Sie können jetzt das Browserfenster schließen.

Rollenbasierte Autorisierung

Jetzt können wir den Zugriff auf den StoreManagerController mithilfe des [Authorize]-Attributs einschränken und angeben, dass der Benutzer in der Administratorrolle sein muss, um auf eine Controlleraktion in der Klasse zugreifen zu können.

[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
    // Controller code here
}

Hinweis: Das Attribut [Authorize] kann sowohl für bestimmte Aktionsmethoden als auch auf Controllerklassenebene platziert werden.

Beim Navigieren zu /StoreManager wird nun ein Anmeldedialogfeld angezeigt:

Screenshot der Music Store-Webseite mit dem Anmeldedialogfeld mit den Textfeldfeldern für Benutzername und Kennwort.

Nachdem Sie sich mit unserem neuen Administratorkonto angemeldet haben, können Sie wie zuvor zum Bildschirm Albumbearbeitung wechseln.