Delen via


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:

  1. Kopieer AccountController.cs in de map Controllers
  2. AccountModels kopiëren in de map Modellen
  3. 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:

Schermopname van het deelvenster Solution Explorer met Account Controller dot C S, Account Models dot CS en de bestanden in de /Account/map gemarkeerd.

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.

Schermopname van het Solution Explorer-venster met het wereldbol- en hamerpictogram gemarkeerd in een rode rechthoek.

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.

Schermopname van de configuratiewebsite met de sectie Rollen en de koppeling Rollen inschakelen gemarkeerd in een rode rechthoek.

Klik op de koppeling Rollen maken of beheren.

Schermopname van de configuratiewebsite met de sectie Rollen en de koppeling Rollen maken of beheren gemarkeerd in een rode rechthoek.

Voer 'Beheerder' in als de rolnaam en druk op de knop Rol toevoegen.

Schermopname van het configuratievenster met Administrator in het veld Nieuwe rolnaam en is gemarkeerd met een rode pijl.

Klik op de knop Vorige en klik vervolgens op de koppeling Gebruiker maken aan de linkerkant.

Schermopname van de configuratiewebsite met de sectie Gebruikers en de koppeling Gebruiker maken gemarkeerd in een rode rechthoek.

Vul de velden voor gebruikersgegevens aan de linkerkant in met behulp van de volgende gegevens:

veld waarde
gebruikersnaam Administrateur
wachtwoord
wachtwoord bevestigen
e-mail (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.

Schermopname van de configuratiewebsite met het selectievakje Rollen met het selectievakje Beheerdersrol aangevinkt en gemarkeerd met een rode rechthoek.

Op dit moment ziet u een bericht dat aangeeft dat de gebruiker succesvol is gemaakt.

Schermopname van de configuratiewebsite met een bericht dat het maken van het gebruikersaccount is voltooid.

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:

Schermopname van de webpagina van de muziekwinkel met het inlogdialoogvenster met velden voor gebruikersnaam en wachtwoord.

Nadat u zich hebt aangemeld met ons nieuwe beheerdersaccount, kunnen we net als voorheen naar het scherm Album bewerken gaan.