poprzednim wpisie opisałam, jak stworzyć odpowiednie kontrolery i widoki w aplikacji ASP.NET Core przy użyciu Entity Framework Core.

Teraz do aplikacji dodamy autoryzację.

W pliku appsettings.json widzimy następujące ustawienia:

Dodanie autoryzacji do aplikacji ASP.NET Core

Zmieniamy nazwę serwera z (localdb)\mssqllocaldb na nazwę własnego serwera (np. ZALNET-PC\SQLCOURSE2017) oraz skracamy nazwę bazy danych na aspnet_Frontend.

SQL Server od wersji 2012 został wyposażony w nową funkcjonalność – SQL Express LocalDb. Celem LocalDb jest zapewnienie programistom lokalnego środowiska, które jest znacznie łatwiejsze do zainstalowania i zarządzania. Zamiast instalować usługę i konfigurować zabezpieczenia, po prostu uruchamiają instancję tego nowego środowiska lokalnego LocalDb, kiedy tego potrzebują. Ponadto pobieranie instalki Express LocalDB to tylko około 33 MB (lub 27 MB, jeśli nadal korzystamy z  architektury x86), w porównaniu do 100 s MB wymaganych do pobrania pełnej wersji SQL Server Express. Ja mimo tych wszytskich zalet LocalDb wolę jednak zainstalowane wersje SQL Server.

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Na serwerze SQL tworzymy bazę danych o nazwie aspnet_Frontend, tak jak zadeklarowaliśmy to w DefaultConnection.

CREATE DATABASE aspnet_Frontend;
GO

Teraz przechodzimy do Package Manager Console i tam wywołujemy polecenie: Update-Database -Context ApplicationDbContext.

Polecenie to stworzy w naszej bazie danych wszystkie tabele, do których odwołujemy się w ApplicationDbContext.

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Po wykonaniu powyższego polecenia możemy zobaczyć, że w naszej bazie danych pojawiły się odpowiednie tabele:

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Testy widoków Register i Login

Uruchamiamy aplikację i rejestrujemy nowego użytkownika.

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Sprawdzamy, czy jesteśmy poprawnie zalogowani.

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Sprawdzamy, czy możemy się wylogować z aplikacji, a następnie ponownie logujemy się do aplikacji.

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Teraz przechodzimy do bazy danych i sprawdzamy zawartość tabeli dbo.AspNetUsers:ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie

Jak uruchomimy aplikację, możemy zaobserwować, że gdy klikniemy na link Register, to przekierowuje nas do widoku Register i kontrolera Account w folderze Identity. Folder Identity znajduje się w folderze Areas. Ale jego aktualna zawartość to tylko folder Pages i plik _ViewStart.cshtml. Nie ma żadnych innych folderów i plików.

Dodanie Entity Framework Core do ASP.NET Core

Ale jak przejdziemy na stronę rejestracji, to widzimy, że wszystko działa i że w URL zawiera i nazwę kontrolera i nazwę metody akcji .

ASP.NET Core MVC: Zmiana ustawień z “No Authentication” na “Individual User Accounts” w istniejącym projekcie
Ale jak to wszystko działa i dlaczego? Aby zobaczyć w strukturze naszego projektu wykorzystywane tutaj widoki i kontrolery, klikamy prawym przyciskiem myszy na folderze Identity, potem klikamy Add, a potem New Scaffolded Item ….
Dodanie Entity Framework Core do ASP.NET Core

W oknie dialogowym Add Scaffold po lewej stronie wybieramy Identity i klikamy przycisk Add.

Dodanie Entity Framework Core do ASP.NET Core

W oknie dialogowym Add Identity możemy dodać wszystkie lub wybrane widoki powiązane z kontrolerem Account.

Dodanie Entity Framework Core do ASP.NET Core

Jak widać, do projektu zostały dodane nowe widoki.

Dodanie Entity Framework Core do ASP.NET Core

Teraz uruchamiamy aplikację, aby sprawdzić, czy wszystko działa tak jak trzeba. Klikamy na link Register i dodajemy nowe konto.

Dodanie Entity Framework Core do ASP.NET Core

Sprawdzamy, czy konto zostało prawidłow dodane do bazy danych.

Dodanie Entity Framework Core do ASP.NET Core

Jak to wszystko działa?

Usługi są dodawane do ConfigureServices. Typowy wzorzec to wywołanie metody Add{Service}, a potem wywołanie wszystkich metod services.Configure{Service}. Identity jest konfigurowane z domyślnymi wartościami. Usługi są dostępne dla aplikacji poprzez  dependency injection. Identity jest włączone poprzez wywołanie UseAuthentication.

Jak działają poszczególne metody możemy przeczytać na tej stronie.

One Reply to “Dodanie autoryzacji do aplikacji ASP.NET Core”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *