Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Skopiuj AccountController.cs do katalogu Controllers
- Kopiowanie modelu AccountModels w katalogu Models
- 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:
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ń.
Spowoduje to uruchomienie witryny 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ź "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:
| pól | wartości |
|---|---|
| nazwa użytkownika | Administrator |
| hasło | |
| Potwierdź hasło | |
| (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.
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 [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:
Po zalogowaniu się przy użyciu nowego konta administratora możemy przejść do ekranu Edycja albumu, tak jak poprzednio.