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:

  1. Kopiowanie pliku AccountController.cs w katalogu Controllers
  2. Kopiowanie modelu AccountModels w katalogu Models
  3. 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:

Zrzut ekranu przedstawiający okienko Eksplorator rozwiązań z wyróżnioną pozycją Account Controller dot C S, Account Models dot CS oraz plikami w folderze / Account /.

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ń.

Zrzut ekranu przedstawiający okno Eksplorator rozwiązań z ikoną globusa i młotkiem wyróżnionym czerwonym prostokątem.

Spowoduje to uruchomienie witryny internetowej konfiguracji. Kliknij kartę Zabezpieczenia na ekranie głównym, a następnie kliknij link "Włącz role" w środku ekranu.

Zrzut ekranu witryny internetowej konfiguracji przedstawiający sekcję Role i link Włącz role wyróżniony w czerwonym prostokątze.

Kliknij link "Utwórz role lub zarządzaj nimi".

Zrzut ekranu przedstawiający witrynę internetową konfiguracji z sekcją Role i linkiem Tworzenie ról lub zarządzanie wyróżnionym czerwonym prostokątem.

Wprowadź ciąg "Administrator" jako nazwę roli i naciśnij przycisk Dodaj rolę.

Zrzut ekranu przedstawiający okno konfiguracji z pozycją Administrator w polu Nowa nazwa roli i wyróżnione czerwoną strzałką.

Kliknij przycisk Wstecz, a następnie kliknij link Utwórz użytkownika po lewej stronie.

Zrzut ekranu przedstawiający witrynę internetową konfiguracji z sekcją Users (Użytkownicy) i linkiem Create user (Utwórz użytkownika) wyróżnionym czerwonym prostokątem.

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.

Zrzut ekranu witryny internetowej konfiguracji przedstawiający sekcję Role z zaznaczonym polem wyboru Rola administratora i wyróżnionym czerwonym prostokątem.

W tym momencie powinien zostać wyświetlony komunikat z informacją o pomyślnym utworzeniu użytkownika.

Zrzut ekranu przedstawiający witrynę internetową konfiguracji z komunikatem o pomyślnym ukończeniu tworzenia konta 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:

Zrzut ekranu przedstawiający stronę internetową sklepu muzycznego przedstawiającą okno dialogowe logowania z polami tekstowymi nazwy użytkownika i hasła.

Po zalogowaniu się przy użyciu nowego konta administratora możemy przejść do ekranu Edycja albumu, tak jak poprzednio.