Udostępnij za pomocą


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 do tworzenia aplikacji internetowych.

MVC Music Store to uproszczona implementacja sklepu przykładowego, która sprzedaje albumy muzyczne online i implementuje podstawową administrację witryną, logowanie użytkowników i funkcjonalność koszyka.

W tej serii samouczków szczegółowo opisano wszystkie kroki podjęte 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 kontrolera konta i widoków

Jedną z różnic między szablonem pełnej 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. Skopiuj AccountController.cs do katalogu Controllers
  2. Kopiowanie modelu AccountModels w katalogu Models
  3. Utwórz katalog Account w katalogu Views i skopiuj wszystkie cztery widoki do niego.

Zmień przestrzeń nazw dla klas Kontroler i Model, aby zaczynał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 pobieranym pliku MvcMusicStore-Assets.zip, 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ą Kontroler konta kropka C S, Modele kont kropka CS i pliki w folderze /Konto/.

Dodawanie użytkownika administracyjnego za pomocą witryny 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 Eksploratorze 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 konfiguracji. Kliknij kartę Zabezpieczenia na ekranie głównym, a następnie kliknij link "Włącz role" w środku ekranu.

Zrzut ekranu przedstawiający witrynę internetową konfiguracji z sekcją Role i linkiem Włącz role wyróżnionym w czerwonym prostokącie.

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

Zrzut ekranu witryny internetowej konfiguracji, przedstawiający sekcję

Wprowadź "Administrator" jako nazwę roli i naciśnij przycisk „Dodaj rolę”.

Zrzut ekranu okna konfiguracji przedstawiający administratora w polu Nowa nazwa roli i jest wyróżniony 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ą Użytkownicy i linkiem Tworzenie użytkownika wyróżnionym czerwonym prostokątem.

Wypełnij pola informacji o użytkowniku po lewej stronie, korzystając z następujących informacji:

pól wartości
nazwa użytkownika Administrator
hasło
Potwierdź hasło
E-mail (dowolny adres e-mail będzie działać)
pytanie dotyczące zabezpieczeń (cokolwiek lubisz)
Odpowiedź zabezpieczeń (cokolwiek lubisz)

Uwaga:

  • W poprzedniej tabeli hasło zostało pominięte.
  • Możesz oczywiście 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 zakoń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 [Autoryzuj], określając, że użytkownik musi być w 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 z okna dialogowego 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.