Część 7. Członkostwo i autoryzacja
Autor: Jon Galloway
Sklep MVC Music Store to aplikacja samouczka, która wprowadza i wyjaśnia krok po kroku, jak używać ASP.NET MVC i Visual Studio na potrzeby tworzenia aplikacji internetowych.
MVC Music Store to uproszczona przykładowa implementacja sklepu, która sprzedaje albumy muzyczne online i implementuje podstawową administrację witryną, logowanie użytkowników i funkcjonalność koszyka zakupów.
W tej serii samouczków szczegółowo przedstawiono wszystkie kroki, które należy wykonać w celu utworzenia przykładowej aplikacji ASP.NET MVC Music Store. Część 7 obejmuje członkostwo i autoryzację.
Nasz kontroler Menedżera sklepu jest obecnie dostępny dla każdego, kto odwiedza naszą witrynę. Zmieńmy to, aby ograniczyć uprawnienia do administratorów witryny.
Dodawanie elementu AccountController i widoków
Jedną z różnic między pełnym szablonem aplikacji internetowej ASP.NET MVC 3 a szablonem pustej aplikacji internetowej ASP.NET MVC 3 jest to, że pusty szablon nie zawiera kontrolera konta. Dodamy kontroler konta, kopiując kilka plików z nowej aplikacji ASP.NET MVC utworzonej na podstawie pełnego szablonu aplikacji internetowej MVC 3 ASP.NET.
Utwórz nową aplikację ASP.NET MVC przy użyciu pełnego szablonu aplikacji internetowej MVC 3 ASP.NET i skopiuj następujące pliki do tych samych katalogów w naszym projekcie:
- Kopiowanie pliku AccountController.cs w katalogu Controllers
- Kopiowanie modelu AccountModels w katalogu Models
- Utwórz katalog Konta w katalogu Views i skopiuj wszystkie cztery widoki w folderze
Zmień przestrzeń nazw dla klas Kontroler i Model, aby rozpoczynały się od mvcMusicStore. Klasa AccountController powinna używać przestrzeni nazw MvcMusicStore.Controllers, a klasa AccountModels powinna używać przestrzeni nazw MvcMusicStore.Models.
Uwaga: te pliki są również dostępne w MvcMusicStore-Assets.zip pobierania, z którego skopiowaliśmy pliki projektu witryny na początku samouczka. Pliki członkostwa znajdują się w katalogu Code.
Zaktualizowane rozwiązanie powinno wyglądać następująco:
Dodawanie użytkownika administracyjnego za pomocą lokacji konfiguracji ASP.NET
Zanim będziemy wymagać autoryzacji w naszej witrynie internetowej, musimy utworzyć użytkownika z dostępem. Najprostszym sposobem utworzenia użytkownika jest użycie wbudowanej witryny internetowej ASP.NET Configuration.
Uruchom witrynę internetową ASP.NET Configuration, klikając ikonę w Eksplorator rozwiązań.
Spowoduje to uruchomienie witryny internetowej konfiguracji. Kliknij kartę Zabezpieczenia na ekranie głównym, a następnie kliknij link "Włącz role" w środku ekranu.
Kliknij link "Utwórz role lub zarządzaj nimi".
Wprowadź ciąg "Administrator" jako nazwę roli i naciśnij przycisk Dodaj rolę.
Kliknij przycisk Wstecz, a następnie kliknij link Utwórz użytkownika po lewej stronie.
Wypełnij pola informacji o użytkowniku po lewej stronie, korzystając z następujących informacji:
Pole | Wartość |
---|---|
Nazwa użytkownika | Administrator |
Password (Hasło) | hasło123! |
Potwierdź hasło | hasło123! |
Poczta e-mail | (dowolny adres e-mail będzie działać) |
Pytanie zabezpieczające | (cokolwiek chcesz) |
Odpowiedź na zabezpieczenia | (cokolwiek chcesz) |
Uwaga: oczywiście możesz użyć dowolnego hasła. Domyślne ustawienia zabezpieczeń haseł wymagają hasła o długości 7 znaków i zawierają jeden znak inny niż alfanumeryczny.
Wybierz rolę Administrator dla tego użytkownika, a następnie kliknij przycisk Utwórz użytkownika.
W tym momencie powinien zostać wyświetlony komunikat z informacją o pomyślnym utworzeniu użytkownika.
Teraz możesz zamknąć okno przeglądarki.
Autoryzacja oparta na rolach
Teraz możemy ograniczyć dostęp do klasy StoreManagerController przy użyciu atrybutu [Authorize], określając, że użytkownik musi należeć do roli Administrator, aby uzyskać dostęp do dowolnej akcji kontrolera w klasie .
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
Uwaga: atrybut [Autoryzuj] można umieścić na określonych metodach akcji, a także na poziomie klasy Kontroler.
Teraz przejście do /StoreManager powoduje wyświetlenie okna dialogowego Logowania:
Po zalogowaniu się przy użyciu nowego konta administratora możemy przejść do ekranu Edycja albumu, tak jak poprzednio.