Użytkownicy i role w produkcyjnej witrynie internetowej (VB)
Uwaga
Ponieważ ten artykuł został napisany, dostawcy ASP.NET członkostwa zostały zastąpione przez usługę ASP.NET Identity. Zdecydowanie zalecamy aktualizowanie aplikacji w celu korzystania z platformy ASP.NET Identity , a nie dostawców członkostwa opisanych w tym artykule. ASP.NET Identity ma wiele zalet w systemie członkostwa ASP.NET, w tym :
- Lepsza wydajność
- Ulepszona rozszerzalność i możliwość testowania
- Obsługa uwierzytelniania OAuth, OpenID Connect i uwierzytelniania dwuskładnikowego
- Obsługa tożsamości opartej na oświadczeniach
- Lepsza współdziałanie z platformą ASP.Net Core
Narzędzie do administrowania witryną internetową ASP.NET (WSAT) udostępnia internetowy interfejs użytkownika do konfigurowania ustawień członkostwa i ról oraz tworzenia, edytowania i usuwania użytkowników i ról. Niestety, program WSAT działa tylko wtedy, gdy jest odwiedzany z hosta lokalnego, co oznacza, że nie można uzyskać dostępu do narzędzia administracyjnego produkcyjnej witryny internetowej za pośrednictwem przeglądarki. Dobrą wiadomością jest to, że istnieją obejścia, które umożliwiają zarządzanie użytkownikami i rolami w środowisku produkcyjnym. W tym samouczku przedstawiono te obejścia i inne.
Wprowadzenie
ASP.NET 2.0 wprowadzono szereg usług aplikacji, które są pakietem usług bloków konstrukcyjnych, które można dodać do aplikacji internetowej. Dodaliśmy usługi Członkostwa i ról do witryny internetowej Przeglądy książek z powrotem w samouczku Konfigurowanie witryny internetowej korzystającej z usług aplikacji. Usługa członkostwa ułatwia tworzenie kont użytkowników i zarządzanie nimi; Usługa Role oferuje interfejs API do kategoryzowania użytkowników w grupach. Witryna Recenzje książek ma trzy konta użytkowników - Scott, Jisun i Alice - i pojedynczą rolę, Administracja, z Scottem i Jisunem w roli Administracja.
ASP. Usługi aplikacji platformy NET nie są powiązane z określoną implementacją. Zamiast tego należy poinstruować usługi aplikacji, aby korzystały z określonego dostawcy i że dostawca implementuje usługę przy użyciu określonej technologii. Skonfigurowaliśmy aplikację internetową Recenzje książek, aby korzystała z SqlMembershipProvider
usług członkostwa i SqlRoleProvider
ról i dostawców. Ci dwaj dostawcy przechowują informacje o koncie użytkownika i roli w bazie danych SQL Server i są najczęściej używanymi dostawcami aplikacji internetowych hostowanych w firmie hostingu internetowego.
Typowym wyzwaniem dla deweloperów korzystających z usług Członkostwa i ról jest zarządzanie użytkownikami i rolami w środowisku produkcyjnym. Jak usunąć konto użytkownika z produkcyjnej witryny internetowej, dodać nową rolę lub dodać istniejącego użytkownika do istniejącej roli? W tym samouczku przedstawiono różne techniki zarządzania użytkownikami i rolami w produkcyjnej witrynie internetowej.
Korzystanie z narzędzia do administrowania witrynami sieci Web ASP.NET
ASP.NET zawiera narzędzie do administrowania witrynami sieci Web (WSAT), które ułatwia tworzenie kont użytkowników i ról oraz zarządzanie nimi oraz określanie reguł autoryzacji opartych na użytkownikach i rolach. Aby użyć narzędzia WSAT, kliknij ikonę ASP.NET Konfiguracja w Eksplorator rozwiązań lub przejdź do menu Witryna internetowa lub Projekt i wybierz opcję konfiguracja ASP.NET. Każda z metod uruchamia przeglądarkę internetową i wskazuje ją na WSAT pod adresem, na przykład: http://localhost:portNumber/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=pathToApplication
WSAT jest podzielony na trzy sekcje:
- Zabezpieczenia — zarządzanie użytkownikami, rolami i regułami autoryzacji.
- ApplicationConfiguration — zarządzaj ustawieniami <appSettings> i SMTP tutaj. Możesz również przejąć aplikację w tryb offline i zarządzać ustawieniami debugowania i śledzenia z tego miejsca, a także określić domyślną niestandardową stronę błędu.
- ProviderConfiguration — skonfiguruj dostawców używanych przez usługi aplikacji.
Sekcja Zabezpieczenia (pokazana na rysunku 1) zawiera linki do tworzenia nowych użytkowników, zarządzania użytkownikami, tworzenia ról i zarządzania nimi oraz tworzenia reguł dostępu i zarządzania nimi. W tym miejscu możesz dodać nową rolę do systemu, usunąć istniejącego użytkownika lub dodać lub usunąć role z określonego konta użytkownika.
Rysunek 1. Sekcja Zabezpieczenia WSAT zawiera opcje zarządzania użytkownikami i rolami
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Niestety, usługa WSAT jest dostępna tylko lokalnie. Nie można odwiedzić usługi WSAT w zdalnej witrynie internetowej produkcyjnej; jeśli zostanie wyświetlona www.yoursite.com/asp.netwebadminfiles/default.aspx
odpowiedź 404 Nie znaleziono. Kod obsługujący usługę WSAT używa Membership
klas i Roles
w .NET Framework do tworzenia, edytowania i usuwania użytkowników i ról. Klasy te skonsultują się z informacjami o konfiguracji aplikacji internetowej, aby określić, jakiego dostawcy użyć; po powrocie do samouczka Konfigurowanie witryny internetowej korzystającej z usług Aplikacji konfigurujemy witrynę internetową Recenzje książek w celu korzystania z SqlMembershipProvider
usług iSqlRoleProvider
. Wiązało się to z dodawaniem i <roleManager>
sekcjami <membership>
do Web.config
elementu .
<?xml version="1.0"?>
<configuration>
...
<connectionStrings configSource="ConfigSections\databaseConnectionStrings.config" />
<system.web>
...
<membership defaultProvider="ReviewMembership">
<providers>
<clear />
<add type="System.Web.Security.SqlMembershipProvider"
name="ReviewMembership"
connectionStringName="ReviewsConnectionString"
applicationName="BookReviews" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="ReviewRole">
<providers>
<clear />
<add type="System.Web.Security.SqlRoleProvider"
name="ReviewRole"
connectionStringName="ReviewsConnectionString"
applicationName="BookReviews" />
</providers>
</roleManager>
</system.web>
...
</configuration>
Należy pamiętać, że <membership>
sekcje i <roleManager>
odwołują się odpowiednio do SqlMembershipProvider
dostawców i SqlRoleProvider
w ich type
atrybutach. Ci dostawcy przechowują informacje o użytkowniku i roli w określonej bazie danych SQL Server. Baza danych używana przez tych dostawców jest określana przez connectionStringName
atrybut , ReviewsConnectionString
który jest zdefiniowany w ~/ConfigSections/databaseConnectionStrings.config
pliku. Pamiętaj, że databaseConnectionStrings.config
plik w środowisku deweloperskim zawiera parametry połączenia z bazą danych deweloperskich, podczas gdy plik w databaseConnectionStrings.config
środowisku produkcyjnym zawiera parametry połączenia z produkcyjną bazą danych.
W skrócie, WSAT musi być dostępny lokalnie za pośrednictwem środowiska programistycznego i współdziała z informacjami o użytkowniku i roli w bazie danych określonej w databaseConnectionStrings.config
pliku. W związku z tym, jeśli zmienimy informacje o parametrach połączenia w pliku w databaseConnectionStrings.config
środowisku deweloperskim, możemy użyć programu WSAT lokalnie do zarządzania użytkownikami i rolami w środowisku produkcyjnym.
Aby zilustrować tę funkcję, otwórz databaseConnectionStrings.config
plik w programie Visual Studio w środowisku deweloperskim i zastąp parametry połączenia bazy danych programistycznej parametrami połączenia produkcyjnej bazy danych. Następnie uruchom program WSAT, przejdź na kartę Zabezpieczenia i dodaj nowego użytkownika o nazwie Sam z hasłem "password!" (mniej cudzysłowów). Rysunek 2 przedstawia ekran WSAT podczas tworzenia tego konta.
Rysunek 2. Tworzenie nowego użytkownika o nazwie Sam w środowisku produkcyjnym
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Ponieważ zmieniliśmy parametry połączenia, databaseConnectionStrings.config
aby wskazać serwer produkcyjnej bazy danych, Sam został dodany jako użytkownik w środowisku produkcyjnym. Aby to sprawdzić, zmień parametry połączenia w databaseConnectionStrings.config
pliku z powrotem do bazy danych deweloperskich, a następnie odwiedź Login.aspx
stronę w środowisku deweloperów. Spróbuj zalogować się jako Sam (zobacz Rysunek 3).
Rysunek 3. Nie można zalogować się jako sam w środowisku projektowym
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Nie można zalogować się jako Sam w środowisku projektowym, ponieważ informacje o koncie użytkownika nie istnieją w lokalnej bazie danych. Zamiast tego jest dodawany do produkcyjnej bazy danych. Aby to sprawdzić, wyświetl zawartość aspnet_Users
tabeli zarówno w bazach danych programistycznych, jak i produkcyjnych. W środowisku projektowym powinny istnieć tylko trzy rekordy dla użytkowników Scott, Jisun i Alice. aspnet_Users
Jednak tabela w produkcyjnej bazie danych zawiera cztery rekordy: Scott, Jisun, Alice i Sam. W związku z tym Sam może zalogować się za pośrednictwem witryny internetowej w środowisku produkcyjnym, ale nie za pośrednictwem środowiska deweloperskiego.
Rysunek 4. Sam może zalogować się w produkcyjnej witrynie internetowej
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Uwaga
Nie zapomnij zmienić parametrów połączenia w databaseConnectionStrings.config
pliku z powrotem na parametry połączenia bazy danych deweloperskiej po zakończeniu pracy z programem WSAT, w przeciwnym razie będziesz pracować z danymi produkcyjnymi podczas testowania lokacji za pośrednictwem środowiska deweloperskiego. Należy również pamiętać, że podczas gdy właśnie omówiona technika pozwala nam na zdalne zarządzanie użytkownikami i rolami za pomocą programu WSAT, zmiany w innych opcjach konfiguracji programu WSAT (reguły dostępu, ustawienia SMTP, debugowanie i śledzenie itd.) modyfikują Web.config
plik. W związku z tym wszelkie zmiany wprowadzone w ustawieniach dotyczą środowiska deweloperskiego, a nie środowiska produkcyjnego.
Tworzenie niestandardowych stron sieci Web zarządzania użytkownikami i rolami
Program WSAT udostępnia system poza systemem zarządzania użytkownikami i rolami, ale można go uruchamiać tylko lokalnie i wymaga wprowadzenia zmian w informacjach o parametrach połączenia w celu zarządzania użytkownikami i rolami w środowisku produkcyjnym. Większość witryn internetowych obsługujących konta użytkowników obejmuje również wiele stron sieci Web administracji użytkownika i roli, które umożliwiają administratorom zarządzanie użytkownikami i rolami z stron w witrynie. Takie strony administracyjne oparte na sieci Web znacznie ułatwiają zarządzanie użytkownikami i rolami i są niezbędne w przypadku witryn, w których może być wielu administratorów lub administratorów, którzy nie mają dostępu do programu Visual Studio lub w tle technicznym, aby uruchomić usługę WSAT.
ASP.NET zawiera wiele wbudowanych kontrolek sieci Web związanych z logowaniem, które ułatwiają implementowanie wielu z tych administracyjnych stron internetowych tak łatwo, jak przeciąganie i upuszczanie. Na przykład możesz utworzyć stronę dla administratorów, aby utworzyć nowe konto użytkownika, przeciągając kontrolkę CreateUserWizard na stronę i ustawiając kilka właściwości. W rzeczywistości strona tworzenia użytkowników w programie WSAT pokazanym na rysunku 2 używa tej samej kontrolki CreateUserWizard, którą można dodać do stron. Ponadto funkcje usług Członkostwa i ról są dostępne programowo za pośrednictwem Membership
klas i Roles
w .NET Framework. Dzięki tym klasom można napisać kod do tworzenia, edytowania i usuwania użytkowników i ról, a także dodawania lub usuwania użytkowników do ról, aby określić, którzy użytkownicy znajdują się w jakich rolach oraz wykonywać inne zadania związane z użytkownikami i rolami.
W samouczku Konfigurowanie witryny internetowej korzystającej z usług aplikacji dodano stronę do Admin
folderu o nazwie CreateAccount.aspx
. Ta strona umożliwia administratorowi dodanie nowego konta użytkownika do witryny i określenie, czy nowo utworzony użytkownik znajduje się w roli Administracja (zobacz Rysunek 5).
Rysunek 5. Administratorzy mogą tworzyć nowe konta użytkowników
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Aby uzyskać bardziej szczegółowe informacje na temat tworzenia stron administrowania użytkownikami i rolami, wraz z instrukcjami krok po kroku dotyczącymi używania Membership
klas i oraz Roles
kontrolek związanych z logowaniem ASP.NET sieci Web, zapoznaj się z moimi samouczkami dotyczącymi zabezpieczeń witryny internetowej. Znajdziesz wskazówki dotyczące tworzenia stron internetowych na potrzeby tworzenia nowych kont, tworzenia ról i zarządzania nimi, przypisywania użytkowników do ról i innych typowych zadań administracyjnych.
Aby zaimplementować funkcje podobne do WSAT w produkcyjnej witrynie internetowej, zawsze można utworzyć własną serię stron internetowych, które implementują funkcje WSAT. Aby ułatwić rozpoczęcie pracy, zapoznaj się z kodem źródłowym WSAT znajdującym się w folderze %WINDIR%\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles
. Inną opcją jest użycie alternatywy WSAT Dan Clem, którą dzieli w swoim artykule Rolling Your Own Web Site Administration Tool. Dan przeprowadzi czytelników przez proces tworzenia niestandardowego narzędzia przypominającego WSAT, zawiera kod źródłowy aplikacji do pobrania (w języku C#) i podaje instrukcje krok po kroku dotyczące dodawania niestandardowego WSAT do hostowanej witryny internetowej.
Podsumowanie
Narzędzie ASP.NET Web Site Administration Tool (WSAT) może być używane razem z usługami aplikacji Członkostwa i ról do zarządzania informacjami o użytkownikach i rolach witryny sieci Web. Niestety, WSAT jest dostępny tylko lokalnie i nie można go odwiedzić z produkcyjnej witryny internetowej. Jednak zmieniając parametry połączenia w środowisku deweloperskim tak, aby wskazywały produkcyjną bazę danych, można użyć narzędzia WSAT do zarządzania użytkownikami i rolami w produkcyjnej witrynie internetowej.
Chociaż podejście WSAT zapewnia szybki i łatwy sposób zarządzania użytkownikami i rolami, wymaga uruchomienia programu WSAT z programu Visual Studio, a także tymczasowych zmian w informacjach o parametrach połączenia. WSAT oferuje szybki sposób zarządzania użytkownikami i rolami w środowisku produkcyjnym, ale jest uciążliwy i nie działa dobrze w przypadku witryn internetowych z wieloma administratorami lub administratorami, którzy nie mają lub nie znają programu Visual Studio i programu WSAT. Z tych powodów większość witryn internetowych obsługujących konta użytkowników obejmuje zestaw administracyjnych stron sieci Web. Taki zestaw stron sieci Web eliminuje konieczność korzystania z programu WSAT i użycia przez różnych użytkowników administracyjnych z dowolnego komputera.
Szczęśliwe programowanie!
Dalsze informacje
Aby uzyskać więcej informacji na temat tematów omówionych w tym samouczku, zapoznaj się z następującymi zasobami:
- Badanie platformy ASP. Członkostwo, role i profil platformy NET
- Wdrażanie własnego narzędzia do administrowania witrynami sieci Web
- Omówienie narzędzia do administrowania witrynami sieci Web
- Samouczki dotyczące zabezpieczeń witryny internetowej