Freigeben über


Teil 7: Mitgliedschaft und Autorisierung

von Jon Galloway

Der MVC Music Store ist eine Lernprogrammanwendung, die schrittweise erläutert, wie Sie ASP.NET MVC und Visual Studio für die Webentwicklung verwenden.

Der MVC Music Store ist eine leichte Beispiel-Store-Implementierung, die online Musikalben verkauft und grundlegende Website-Administration, Benutzer-Login und Einkaufswagenfunktionalität bereitstellt.

In dieser Lernprogrammreihe werden alle Schritte zum Erstellen der ASP.NET MVC Music Store-Beispielanwendung erläutert. Teil 7 umfasst Mitgliedschaft und Autorisierung.

Unser Store Manager-Controller ist derzeit für jeden zugänglich, der unsere Website besucht. Lassen Sie uns dies ändern, um die Berechtigung auf Websiteadministratoren zu beschränken.

Hinzufügen von AccountController und Ansichten

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

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

  1. Kopieren von AccountController.cs im Verzeichnis "Controller"
  2. Kopieren von AccountModels im Models-Verzeichnis
  3. Erstellen Sie ein Verzeichnis namens Account im Views-Verzeichnis und kopieren Sie alle vier Ansichten hinein.

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

Hinweis: Diese Dateien sind auch im MvcMusicStore-Assets.zip Download verfügbar, aus dem wir unsere Websitedesigndateien am Anfang des Lernprogramms kopiert haben. Die Mitgliedschaftsdateien befinden sich im Codeverzeichnis.

Die aktualisierte Lösung sollte wie folgt aussehen:

Screenshot des Bereichs „Projektmappen-Explorer“, in dem „Account Controller Dot C S“, „Account Models Dot C S“ und die Dateien im Ordner /Konto/ hervorgehoben sind.

Hinzufügen eines administrativen Benutzers mit der ASP.NET-Konfigurationswebsite

Bevor wir eine Autorisierung auf unserer Website anfordern, 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 im Projektmappen-Explorer auf das Symbol klicken.

Screenshot des Fensters

Dadurch wird eine Konfigurationswebsite gestartet. Klicken Sie auf der Startseite 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 drücken Sie die Schaltfläche "Rolle hinzufügen".

Screenshot des Konfigurationsfensters, in dem

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

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
Kennwort bestätigen
E-Mail (jede E-Mail-Adresse funktioniert)
Sicherheitsfrage (was Ihnen gefällt)
Sicherheitsantwort (was Ihnen gefällt)

Hinweis:

  • In der vorherigen Tabelle wurde das Kennwort weggelassen.
  • Sie können natürlich ein beliebiges Kennwort verwenden. Für die Standardeinstellungen für die Kennwortsicherheit ist ein Kennwort erforderlich, das 7 Zeichen lang ist und ein nicht alphanumerisches Zeichen enthält.

Wählen Sie die Administratorrolle 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 nun das Browserfenster schließen.

Rollenbasierte Autorisierung

Jetzt können wir den Zugriff auf den StoreManagerController mithilfe des Attributs [Authorize] einschränken, wobei angegeben wird, dass der Benutzer in der Administratorrolle sein muss, um auf jede Controlleraktion in der Klasse zuzugreifen.

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

Hinweis: Das [Authorize]-Attribut kann auf bestimmten Aktionsmethoden sowie auf Controller-Klassenebene platziert werden.

Beim Navigieren zu /StoreManager wird nun ein Anmeldedialogfeld angezeigt:

Screenshot der Musikladen-Webseite mit dem Dialogfeld

Nach der Anmeldung mit unserem neuen Administratorkonto können wir wie zuvor zum Bildschirm "Albumbearbeitung" wechseln.