Udostępnij za pośrednictwem


Użytkownicy i role w produkcyjnej witrynie internetowej (VB)

Autor: Scott Mitchell

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.

Zrzut ekranu przedstawiający element A S P . N E T Narzędzia administracji witryny internetowej do tworzenia użytkowników i ról i reguł dostępu oraz zarządzania nimi.

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.configelementu .

<?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 , ReviewsConnectionStringktó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.

Zrzut ekranu przedstawiający element A S P . N E T Web Administration tool to create a new user in the production environment (N E T Web Administration tool to create a new user in the production environment).

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).

Zrzut ekranu przedstawiający ekran logowania, na którym nowo utworzony użytkownik nie może się zalogować w środowisku deweloperów.

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.

Zrzut ekranu przedstawiający ekran logowania, na którym nowo utworzony użytkownik może zalogować się w produkcyjnej witrynie internetowej.

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).

Zrzut ekranu przedstawiający administratorów, którzy mogą tworzyć nowe konta użytkowników.

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: