Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 do administrowania witrynami sieci Web (WSAT) ASP.NET można używać w połączeniu z usługami aplikacji Członkostwo i role do zarządzania informacjami o użytkownikach i rolach witryny internetowej. Niestety, usługa WSAT jest dostępna tylko lokalnie i nie może być odwiedzana z twojej produkcyjnej witryny internetowej. Jednak poprzez zmianę parametrów połączenia w środowisku deweloperskim w celu wskazania produkcyjnej bazy danych można użyć programu 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ą programu Visual Studio i WSAT lub nie znają go. 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 potrzebę korzystania z usługi WSAT i używanych 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
- Rolling Your Own Web Site Administration Tool
- Omówienie narzędzia do administrowania witrynami sieci Web
- Samouczki dotyczące zabezpieczeń witryny internetowej