Del 7: Medlemskap och auktorisering
av Jon Galloway
MVC Music Store är ett självstudieprogram som introducerar och förklarar steg för steg hur du använder ASP.NET MVC och Visual Studio för webbutveckling.
MVC Music Store är en enkel exempelbutiksimplementering som säljer musikalbum online och implementerar grundläggande webbplatsadministration, användarinloggning och kundvagnsfunktioner.
Den här självstudieserien beskriver alla steg som vidtagits för att skapa exempelprogrammet ASP.NET MVC Music Store. Del 7 omfattar medlemskap och auktorisering.
Vår Store Manager-kontrollant är för närvarande tillgänglig för alla som besöker vår webbplats. Nu ska vi ändra detta för att begränsa behörigheten till webbplatsadministratörer.
Lägga till AccountController och vyer
En skillnad mellan den fullständiga ASP.NET MVC 3-webbprogrammallen och mallen ASP.NET MVC 3 Empty Web Application är att den tomma mallen inte innehåller någon kontokontrollant. Vi lägger till en kontokontrollant genom att kopiera några filer från ett nytt ASP.NET MVC-program som skapats från den fullständiga ASP.NET MVC 3-webbprogrammallen.
Skapa ett nytt ASP.NET MVC-program med hjälp av den fullständiga ASP.NET MVC 3-webbprogrammallen och kopiera följande filer till samma kataloger i vårt projekt:
- Kopiera AccountController.cs i katalogen Controllers
- Kopiera AccountModels i katalogen Modeller
- Skapa en kontokatalog i katalogen Vyer och kopiera alla fyra vyerna i
Ändra namnområdet för klasserna Controller och Modell så att de börjar med MvcMusicStore. Klassen AccountController bör använda namnområdet MvcMusicStore.Controllers och klassen AccountModels bör använda namnområdet MvcMusicStore.Models.
Observera: Dessa filer är också tillgängliga i MvcMusicStore-Assets.zip-nedladdningen, från vilken vi kopierade våra webbplatsdesignfiler i början av handledningen. Medlemskapsfilerna finns i kodkatalogen.
Den uppdaterade lösningen bör se ut så här:
Lägga till en administrativ användare med ASP.NET-konfigurationsplatsen
Innan vi behöver auktorisering på vår webbplats måste vi skapa en användare med åtkomst. Det enklaste sättet att skapa en användare är att använda den inbyggda ASP.NET Configuration-webbplatsen.
Starta webbplatsen ASP.NET Configuration genom att klicka på ikonen i Solution Explorer.
Detta startar en konfigurationswebbplats. Klicka på fliken Säkerhet på startskärmen och klicka sedan på länken "Aktivera roller" i mitten av skärmen.
Klicka på länken "Skapa eller hantera roller".
Ange "Administratör" som rollnamn och tryck på knappen Lägg till roll.
Klicka på bakåtknappen och klicka sedan på länken Skapa användare till vänster.
Fyll i fälten för användarinformation till vänster med hjälp av följande information:
fält | Värde |
---|---|
användarnamn | Administratör |
Lösenord | |
Bekräfta lösenordet | |
e-post | (alla e-postadresser fungerar) |
säkerhetsfråga | (vad du vill) |
Säkerhetssvar | (vad du vill) |
Notera:
- I föregående tabell har lösenordet utelämnats.
- Du kan naturligtvis använda valfritt lösenord som du vill. Standardinställningarna för lösenordssäkerhet kräver ett lösenord som är 7 tecken långt och innehåller ett icke-alfanumeriskt tecken.
Välj administratörsrollen för den här användaren och klicka på knappen Skapa användare.
Nu bör du se ett meddelande som anger att användaren har skapats framgångsrikt.
Nu kan du stänga webbläsarfönstret.
Rollbaserad auktorisering
Nu kan vi begränsa åtkomsten till StoreManagerController med hjälp av attributet [Auktorisera] och ange att användaren måste vara i administratörsrollen för att få åtkomst till alla kontrollantåtgärder i klassen.
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
Obs! Attributet [Auktorisera] kan placeras på specifika åtgärdsmetoder och på klassnivå controller.
Om du bläddrar till /StoreManager visas nu en dialogruta för inloggning:
När du har loggat in med vårt nya administratörskonto kan vi gå till skärmen Redigera album som tidigare.