Část 7: Členství a autorizace
podle Jon Galloway
MVC Music Store je výukové aplikace, která představuje a vysvětluje, jak používat ASP.NET MVC a Visual Studio pro vývoj pro web.
MVC Music Store je jednoduchá ukázková implementace obchodu, která prodává hudební alba online a implementuje základní správu webu, přihlašování uživatelů a funkce nákupního košíku.
Tato série kurzů podrobně popisuje všechny kroky potřebné k sestavení ukázkové aplikace ASP.NET MVC Music Store. Část 7 se zabývá členstvím a autorizací.
Náš kontroler Správce storu je momentálně přístupný všem, kteří navštíví náš web. Pojďme to změnit tak, aby se omezilo oprávnění správcům webu.
Přidání AccountControlleru a zobrazení
Jedním rozdílem mezi úplnou šablonou webové aplikace ASP.NET MVC 3 a šablonou prázdné webové aplikace ASP.NET MVC 3 je to, že prázdná šablona neobsahuje kontroler účtu. Přidáme kontroler účtu zkopírováním několika souborů z nové aplikace ASP.NET MVC vytvořené z úplné šablony webové aplikace ASP.NET MVC 3.
Vytvořte novou aplikaci ASP.NET MVC pomocí úplné šablony webové aplikace ASP.NET MVC 3 a zkopírujte následující soubory do stejných adresářů v našem projektu:
- Zkopírujte AccountController.cs ve složce Controllers
- Zkopírujte AccountModels do adresáře Models
- Vytvořte adresář účtu v adresáři Zobrazení a zkopírujte všechna čtyři zobrazení v
Změňte obor názvů pro třídy Controller a Model tak, aby začínaly MvcMusicStore. Třída AccountController by měla používat obory názvů MvcMusicStore.Controllers a třída AccountModels by měla používat obory názvů MvcMusicStore.Models.
Poznámka: Tyto soubory jsou také k dispozici ke stažení v MvcMusicStore-Assets.zip, ze kterého jsme zkopírovali soubory návrhu webu na začátku kurzu. Soubory členství se nacházejí v adresáři Code.
Aktualizované řešení by mělo vypadat takto:
Přidání administrativního uživatele pomocí webu konfigurace ASP.NET
Než budeme vyžadovat autorizaci na našem webu, budeme muset vytvořit uživatele s přístupem. Nejjednodušší způsob, jak vytvořit uživatele, je použít integrovaný web konfigurace ASP.NET.
Kliknutím na ikonu v průzkumníku řešení spusťte webovou stránku konfigurace ASP.NET.
Tím se spustí konfigurační web. Klikněte na kartu Zabezpečení na domovské obrazovce a potom klikněte na odkaz Povolit role uprostřed obrazovky.
Klikněte na odkaz Vytvořit nebo spravovat role.
Jako název role zadejte "Správce" a stiskněte tlačítko Přidat roli.
Klikněte na tlačítko Zpět a potom klikněte na odkaz Vytvořit uživatele na levé straně.
Vyplňte pole s informacemi o uživateli vlevo pomocí následujících informací:
pole | hodnota |
---|---|
uživatelské jméno | Správce |
heslo | |
Potvrďte heslo | |
e-mailové | (všechny e-mailové adresy budou fungovat) |
bezpečnostní otázka | (bez ohledu na to, co chcete) |
Odpověď na zabezpečení | (bez ohledu na to, co chcete) |
poznámka:
- V předchozí tabulce bylo heslo vynecháno.
- Můžete samozřejmě použít jakékoli heslo, které byste chtěli. Výchozí nastavení zabezpečení hesla vyžaduje heslo, které má délku 7 znaků a obsahuje jeden nealnumerický znak.
Vyberte roli Správce pro tohoto uživatele a klikněte na tlačítko Vytvořit uživatele.
V tomto okamžiku by se měla zobrazit zpráva oznamující, že se uživatel úspěšně vytvořil.
Teď můžete okno prohlížeče zavřít.
Autorizace na základě role
Nyní můžeme omezit přístup k StoreManagerController pomocí atributu [Authorize] a určit, že uživatel musí být v roli Správce pro přístup k jakékoli akci kontroleru ve třídě.
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
Poznámka: Atribut [Authorize] lze umístit na konkrétní metody akcí a také na úrovni třídy Controller.
Když teď přejdete na /StoreManager, otevře se dialogové okno Přihlásit:
Po přihlášení pomocí nového účtu správce můžeme přejít na obrazovku Upravit album stejně jako předtím.