Deel 7: Lidmaatschap en autorisatie
door Jon Galloway
De MVC Music Store is een zelfstudietoepassing waarin stapsgewijs wordt uitgelegd hoe u ASP.NET MVC en Visual Studio kunt gebruiken voor webontwikkeling.
De MVC Music Store is een lichtgewicht implementatie van een voorbeeldwinkel die muziekalbums online verkoopt, en implementeert basis sitebeheer, gebruikersaanmelding en functionaliteit van een winkelwagen.
In deze reeks zelfstudies worden alle stappen beschreven die zijn uitgevoerd voor het bouwen van de ASP.NET MVC Music Store-voorbeeldtoepassing. Deel 7 omvat lidmaatschap en autorisatie.
Onze Store Manager-controller is momenteel toegankelijk voor iedereen die onze site bezoekt. Laten we dit wijzigen om de machtiging voor sitebeheerders te beperken.
Toevoeging van de AccountController en Views
Een verschil tussen de volledige ASP.NET MVC 3-webtoepassingssjabloon en de ASP.NET MVC 3 Lege webtoepassingssjabloon is dat de lege sjabloon geen accountcontroller bevat. We voegen een accountcontroller toe door een paar bestanden te kopiëren van een nieuwe ASP.NET MVC-toepassing die is gemaakt op basis van de volledige ASP.NET MVC 3-webtoepassingssjabloon.
Maak een nieuwe ASP.NET MVC-toepassing met behulp van de volledige ASP.NET MVC 3-webtoepassingssjabloon en kopieer de volgende bestanden naar dezelfde mappen in ons project:
- Kopieer AccountController.cs in de map Controllers
- AccountModels kopiëren in de map Modellen
- Maak een accountmap in de map Weergaven en kopieer alle vier de weergaven in
Wijzig de naamruimte voor de klassen Controller en Model zodat ze beginnen met MvcMusicStore. De klasse AccountController moet de naamruimte MvcMusicStore.Controllers gebruiken en de klasse AccountModels moet de naamruimte MvcMusicStore.Models gebruiken.
Opmerking: Deze bestanden zijn ook beschikbaar in de MvcMusicStore-Assets.zip downloaden waaruit we onze siteontwerpbestanden aan het begin van de zelfstudie hebben gekopieerd. De lidmaatschapsbestanden bevinden zich in de Codedirectory.
De bijgewerkte oplossing moet er als volgt uitzien:
Een gebruiker met beheerdersrechten toevoegen met de ASP.NET-configuratiesite
Voordat we autorisatie op onze website vereisen, moeten we een gebruiker met toegang maken. De eenvoudigste manier om een gebruiker te maken, is door de ingebouwde ASP.NET Configuration-website te gebruiken.
Start de ASP.NET Configuration-website door op het pictogram in Solution Explorer te klikken.
Hiermee wordt een configuratiewebsite gestart. Klik op het tabblad Beveiliging op het startscherm en klik vervolgens op de koppeling Rollen inschakelen in het midden van het scherm.
Klik op de koppeling Rollen maken of beheren.
Voer 'Beheerder' in als de rolnaam en druk op de knop Rol toevoegen.
Klik op de knop Vorige en klik vervolgens op de koppeling Gebruiker maken aan de linkerkant.
Vul de velden voor gebruikersgegevens aan de linkerkant in met behulp van de volgende gegevens:
veld | waarde |
---|---|
gebruikersnaam | Administrateur |
wachtwoord | |
wachtwoord bevestigen | |
(elk e-mailadres werkt) | |
beveiligingsvraag | (wat u ook bevalt) |
Beveiligingsantwoord | (wat u ook bevalt) |
Opmerking:
- In de voorgaande tabel is het wachtwoord weggelaten.
- U kunt natuurlijk elk gewenst wachtwoord gebruiken. Voor de standaardinstellingen voor wachtwoordbeveiliging is een wachtwoord vereist dat 7 tekens lang is en één niet-alfanumerieke teken bevat.
Selecteer de beheerdersrol voor deze gebruiker en klik op de knop Gebruiker maken.
Op dit moment ziet u een bericht dat aangeeft dat de gebruiker succesvol is gemaakt.
U kunt nu het browservenster sluiten.
Autorisatie op basis van rollen
Nu kunnen we de toegang tot de StoreManagerController beperken met behulp van het kenmerk [Autoriseren] en opgeven dat de gebruiker de rol Administrator moet hebben om toegang te krijgen tot elke controlleractie in de klasse.
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
Opmerking: het kenmerk [Autoriseren] kan worden geplaatst op specifieke actiemethoden en op het niveau van de controllerklasse.
Als u nu naar /StoreManager bladert, wordt het dialoogvenster Aanmelden geopend:
Nadat u zich hebt aangemeld met ons nieuwe beheerdersaccount, kunnen we net als voorheen naar het scherm Album bewerken gaan.