Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Kopieren von AccountController.cs im Verzeichnis "Controller"
- Kopieren von AccountModels im Models-Verzeichnis
- 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:
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.
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".
Klicken Sie auf den Link "Rollen erstellen oder verwalten".
Geben Sie "Administrator" als Rollennamen ein, und drücken Sie die Schaltfläche "Rolle hinzufügen".
Klicken Sie auf die Schaltfläche "Zurück" und dann auf den Link "Benutzer erstellen" auf der linken Seite.
Füllen Sie die Benutzerinformationsfelder auf der linken Seite mit den folgenden Informationen aus:
Feld | Wert |
---|---|
Benutzername | Administrator |
Kennwort | |
Kennwort bestätigen | |
(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".
An diesem Punkt sollte eine Meldung angezeigt werden, die angibt, dass der Benutzer erfolgreich erstellt 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:
Nach der Anmeldung mit unserem neuen Administratorkonto können wir wie zuvor zum Bildschirm "Albumbearbeitung" wechseln.