Konfigurowanie witryny internetowej, która korzysta z usług aplikacji (VB)

Autor : Scott Mitchell

Uwaga

Od czasu napisania tego artykułu dostawcy członkostwa ASP.NET zostali zastąpioni przez ASP.NET Identity. Zdecydowanie zalecamy aktualizowanie aplikacji w celu korzystania z platformy ASP.NET Identity , a nie dostawców członkostwa w momencie pisania tego artykułu. ASP.NET Identity ma wiele zalet w porównaniu z systemem 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
  • Lepsze współdziałanie z platformą ASP.Net Core

ASP.NET w wersji 2.0 wprowadzono szereg usług aplikacji, które są częścią .NET Framework i służą jako zestaw usług bloków konstrukcyjnych, których można użyć do dodawania rozbudowanych funkcji do aplikacji internetowej. W tym samouczku przedstawiono sposób konfigurowania witryny internetowej w środowisku produkcyjnym w celu korzystania z usług aplikacji i rozwiązywania typowych problemów z zarządzaniem kontami użytkowników i rolami w środowisku produkcyjnym.

Wprowadzenie

ASP.NET w wersji 2.0 wprowadzono szereg usług aplikacji, które są częścią .NET Framework i służą jako zestaw usług bloków konstrukcyjnych, których można użyć do dodawania rozbudowanych funkcji do aplikacji internetowej. Usługi aplikacji obejmują:

  • Członkostwo — interfejs API do tworzenia kont użytkowników i zarządzania nimi.
  • Role — interfejs API do kategoryzowania użytkowników w grupach.
  • Profil — interfejs API do przechowywania niestandardowej zawartości specyficznej dla użytkownika.
  • Mapa witryny — interfejs API służący do definiowania struktury logicznej lokacji w postaci hierarchii, która następnie może być wyświetlana za pomocą kontrolek nawigacji, takich jak menu i linki do stron nadrzędnych.
  • Personalizacja — interfejs API do obsługi preferencji dostosowywania, najczęściej używany z składnikami Web Part.
  • Monitorowanie kondycji — interfejs API do monitorowania wydajności, zabezpieczeń, błędów i innych metryk kondycji systemu dla uruchomionej aplikacji internetowej.

Interfejsy API usług aplikacji nie są powiązane z określoną implementacją. Zamiast tego należy poinstruować usługi aplikacji, aby korzystały z określonego dostawcy, a dostawca implementuje usługę przy użyciu określonej technologii. Najczęściej używanymi dostawcami internetowych aplikacji internetowych hostowanych w firmie hostingu internetowego są ci dostawcy, którzy korzystają z implementacji bazy danych SQL Server. Na przykład jest to dostawca interfejsu API członkostwa, SqlMembershipProvider który przechowuje informacje o koncie użytkownika w bazie danych microsoft SQL Server.

Korzystanie z usług aplikacji i SQL Server dostawców dodaje pewne wyzwania podczas wdrażania aplikacji. Na początek obiekty bazy danych usług aplikacji muszą być poprawnie tworzone zarówno w bazach danych deweloperskich, jak i produkcyjnych, i odpowiednio zainicjowanych. Istnieją również ważne ustawienia konfiguracji, które należy wykonać.

Uwaga

Interfejsy API usług aplikacji zostały zaprojektowane przy użyciu modelu dostawcy, czyli wzorca projektowego, który umożliwia podanie szczegółów implementacji interfejsu API w czasie wykonywania. .NET Framework jest dostarczany z wieloma dostawcami usług aplikacji, których można używać, takich jak SqlMembershipProvider i SqlRoleProvider, które są dostawcami interfejsów API członkostwa i ról korzystających z implementacji bazy danych SQL Server. Możesz również utworzyć i podłączyć dostawcę niestandardowego. W rzeczywistości aplikacja internetowa Recenzje książek zawiera już niestandardowego dostawcę interfejsu API mapy witryny (ReviewSiteMapProvider), który tworzy mapę witryny na podstawie danych w Genres tabelach i Books w bazie danych.

Ten samouczek rozpoczyna się od zapoznania się ze sposobem rozszerzania aplikacji internetowej Recenzje książek w celu korzystania z interfejsów API członkostwa i ról. Następnie przeprowadzi cię przez proces wdrażania aplikacji internetowej korzystającej z usług aplikacji z implementacją bazy danych SQL Server i kończy się rozwiązywaniem typowych problemów z zarządzaniem kontami użytkowników i rolami w środowisku produkcyjnym.

Aktualizacje do aplikacji Recenzje książek

W ciągu ostatnich kilku samouczków aplikacja internetowa Book Reviews została zaktualizowana ze statycznej witryny internetowej do dynamicznej aplikacji internetowej opartej na danych wraz z zestawem stron administracyjnych do zarządzania gatunkami i recenzjami. Jednak ta sekcja administracyjna nie jest obecnie chroniona — każdy użytkownik, który zna (lub zgaduje) adres URL strony administracyjnej, może walcować i tworzyć, edytować lub usuwać recenzje w naszej witrynie. Typowym sposobem ochrony niektórych części witryny internetowej jest zaimplementowanie kont użytkowników, a następnie użycie reguł autoryzacji adresów URL w celu ograniczenia dostępu do określonych użytkowników lub ról. Aplikacja internetowa Recenzje książek dostępna do pobrania w tym samouczku obsługuje konta i role użytkowników. Ma zdefiniowaną jedną rolę o nazwie Administracja, a tylko użytkownicy w tej roli mogą uzyskiwać dostęp do stron administracyjnych.

Uwaga

Utworzono trzy konta użytkowników w aplikacji internetowej Recenzje książek: Scott, Jisun i Alice. Wszyscy trzej użytkownicy mają takie samo hasło: hasło! Scott i Jisun są w roli Administracja, Alice nie jest. Strony nieadministrowania witryną są nadal dostępne dla użytkowników anonimowych. Oznacza to, że nie musisz logować się, aby odwiedzić witrynę, chyba że chcesz ją administrować, w takim przypadku musisz zalogować się jako użytkownik w roli Administracja.

Strona wzorcowa aplikacji Recenzje książek została zaktualizowana w celu uwzględnienia innego interfejsu użytkownika dla uwierzytelnionych i anonimowych użytkowników. Jeśli anonimowy użytkownik odwiedzi witrynę, w prawym górnym rogu zobaczy link logowania. Uwierzytelniony użytkownik widzi komunikat "Witaj ponownie, nazwa użytkownika!" i link do wylogowania. Istnieje również strona logowania (~/Login.aspx), która zawiera kontrolkę Logowania w sieci Web, która zapewnia interfejs użytkownika i logikę uwierzytelniania osoby odwiedzającej. Tylko administratorzy mogą tworzyć nowe konta. (W folderze ~/Admin znajdują się strony służące do tworzenia kont użytkowników i zarządzania nimi).

Konfigurowanie interfejsów API członkostwa i ról

Aplikacja internetowa Recenzje książek używa interfejsów API członkostwa i ról do obsługi kont użytkowników i grupowania tych użytkowników w role (a mianowicie roli Administracja). Klasy SqlMembershipProvider i SqlRoleProvider dostawcy są używane, ponieważ chcemy przechowywać informacje o koncie i roli w SQL Server bazie danych.

Uwaga

Ten samouczek nie jest przeznaczony do szczegółowego zbadania podczas konfigurowania aplikacji internetowej do obsługi interfejsów API członkostwa i ról. Aby dokładnie zapoznać się z tymi interfejsami API i czynnościami, które należy wykonać, aby skonfigurować witrynę internetową do ich używania, przeczytaj moje samouczki dotyczące zabezpieczeń witryny internetowej.

Aby korzystać z usług aplikacji z bazą danych SQL Server, należy najpierw dodać obiekty bazy danych używane przez tych dostawców do bazy danych, w której mają być przechowywane informacje o koncie użytkownika i roli. Te wymagane obiekty bazy danych obejmują różne tabele, widoki i procedury składowane. O ile nie określono inaczej, SqlMembershipProvider klasy dostawcy i SqlRoleProvider używają bazy danych SQL Server Express Edition o nazwie znajdującej ASPNETDB się w folderze aplikacjiApp_Data. Jeśli taka baza danych nie istnieje, zostanie ona automatycznie utworzona z wymaganymi obiektami bazy danych przez tych dostawców w czasie wykonywania.

Jest to możliwe i zwykle idealne do utworzenia obiektów bazy danych usług aplikacji w tej samej bazie danych, w której są przechowywane dane specyficzne dla aplikacji witryny internetowej. .NET Framework jest dostarczany z narzędziem o nazwie aspnet_regsql.exe , które instaluje obiekty bazy danych w określonej bazie danych. Poszedłem do przodu i użyłem tego narzędzia, aby dodać te obiekty do Reviews.mdf bazy danych w folderze App_Data (baza danych programowania). W dalszej części tego samouczka zobaczymy, jak używać tego narzędzia podczas dodawania tych obiektów do produkcyjnej bazy danych.

Jeśli dodasz obiekty bazy danych usług aplikacji do bazy danych innej niż ASPNETDB konieczne będzie dostosowanie SqlMembershipProvider konfiguracji klas dostawcy i SqlRoleProvider w celu korzystania z odpowiedniej bazy danych. Aby dostosować dostawcę <członkostwa, dodaj element członkostwa> w <system.web> sekcji w sekcji w Web.configelemecie ; użyj <elementu roleManager>, aby skonfigurować dostawcę ról. Poniższy fragment kodu jest pobierany z aplikacji Web.config Recenzje książek i pokazuje ustawienia konfiguracji interfejsów API członkostwa i ról. Należy pamiętać, że zarówno zarejestruj nowego dostawcę , ReviewMembership jak i ReviewRole — używającego SqlMembershipProvider odpowiednio dostawców i SqlRoleProvider .

<configuration>
    <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>

Element Web.config s <authentication> pliku został również skonfigurowany do obsługi uwierzytelniania opartego na formularzach.

<configuration>
    <system.web>
        ...

        <authentication mode="Forms" />

        ...
    </system.web>
</configuration>

Ograniczanie dostępu do stron administracyjnych

ASP.NET ułatwia udzielanie lub odmawianie dostępu do określonego pliku lub folderu przez użytkownika lub rolę za pośrednictwem funkcji autoryzacji adresu URL . (Krótko omówiliśmy autoryzację adresów URL w podstawowych różnicach między usługami IIS i samouczkiem programu ASP.NET Development Server oraz pokazaliśmy, jak usługi IIS i ASP.NET Development Server stosują reguły autoryzacji adresów URL inaczej dla zawartości statycznej i dynamicznej). Ponieważ chcemy uniemożliwić dostęp do ~/Admin folderu z wyjątkiem tych użytkowników w roli Administracja, musimy dodać reguły autoryzacji adresów URL do tego folderu. W szczególności reguły autoryzacji adresów URL muszą zezwalać użytkownikom w roli Administracja i odrzucać wszystkich innych użytkowników. Jest to realizowane przez dodanie Web.config pliku do ~/Admin folderu z następującą zawartością:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="Admin" />
            <deny users="*" />
        </authorization>
    </system.web>
</configuration>

Aby uzyskać więcej informacji na temat funkcji autoryzacji adresu URL ASP.NET oraz sposobu używania jej do pisania reguł autoryzacji dla użytkowników i ról, zapoznaj się z samouczkami dotyczącymi autoryzacji opartej na użytkownikach i autoryzacji opartej na rolach z samouczków dotyczących zabezpieczeń witryny internetowej.

Wdrażanie aplikacji internetowej korzystającej z usług aplikacji

Podczas wdrażania witryny internetowej korzystającej z usług aplikacji i dostawcy, który przechowuje informacje o usługach aplikacji w bazie danych, konieczne jest utworzenie obiektów bazy danych wymaganych przez usługi aplikacji w produkcyjnej bazie danych. Początkowo produkcyjna baza danych nie zawiera tych obiektów, dlatego po pierwszym wdrożeniu aplikacji (lub po pierwszym wdrożeniu po dodaniu usług aplikacji) należy wykonać dodatkowe kroki, aby uzyskać te wymagane obiekty bazy danych w produkcyjnej bazie danych.

Podczas wdrażania witryny internetowej korzystającej z usług aplikacji może wystąpić inne wyzwanie, jeśli zamierzasz replikować konta użytkowników utworzone w środowisku deweloperskim do środowiska produkcyjnego. W zależności od konfiguracji Członkostwa i ról możliwe jest, że nawet jeśli pomyślnie skopiowano konta użytkowników utworzone w środowisku deweloperskim do produkcyjnej bazy danych, ci użytkownicy nie mogą zalogować się do aplikacji internetowej w środowisku produkcyjnym. Przyjrzymy się przyczynie tego problemu i omówimy, jak temu zapobiec.

ASP.NET dostarczane z ładnym narzędziem do administrowania witrynami sieci Web (WSAT), które można uruchomić z programu Visual Studio i umożliwia zarządzanie kontem użytkownika, rolami i regułami autoryzacji za pośrednictwem interfejsu internetowego. Niestety program WSAT działa tylko w przypadku lokalnych witryn internetowych, co oznacza, że nie może być używany do zdalnego zarządzania kontami użytkowników, rolami i regułami autoryzacji dla aplikacji internetowej w środowisku produkcyjnym. Przyjrzymy się różnym sposobom implementowania zachowania przypominającego środowisko WSAT z produkcyjnej witryny internetowej.

Dodawanie obiektów bazy danych przy użyciu aspnet_regsql.exe

W samouczku Wdrażanie bazy danych pokazano, jak skopiować tabele i dane z bazy danych deweloperskich do produkcyjnej bazy danych, a te techniki z pewnością mogą służyć do kopiowania obiektów bazy danych usług aplikacji do produkcyjnej bazy danych. Inną opcją jest aspnet_regsql.exe narzędzie, które dodaje lub usuwa obiekty bazy danych usług aplikacji z bazy danych.

Uwaga

Narzędzie aspnet_regsql.exe tworzy obiekty bazy danych w określonej bazie danych. Dane w tych obiektach bazy danych nie są migrowane z bazy danych deweloperskich do produkcyjnej bazy danych. Jeśli chcesz skopiować informacje o koncie użytkownika i roli w bazie danych deweloperów do produkcyjnej bazy danych, użyj technik opisanych w samouczku Wdrażanie bazy danych .

Przyjrzyjmy się, jak dodać obiekty bazy danych do produkcyjnej bazy danych przy użyciu aspnet_regsql.exe narzędzia . Rozpocznij od otwarcia Eksploratora Windows i przejście do katalogu .NET Framework w wersji 2.0 na komputerze, %WINDIR%\ Microsoft.NET\Framework\v2.0.50727. W tym miejscu należy znaleźć aspnet_regsql.exe narzędzie. Tego narzędzia można użyć z poziomu wiersza polecenia, ale zawiera również graficzny interfejs użytkownika; Kliknij dwukrotnie plik, aspnet_regsql.exe aby uruchomić jego składnik graficzny.

Narzędzie rozpoczyna się od wyświetlenia ekranu powitalnego objaśniającego jego przeznaczenie. Kliknij przycisk Dalej, aby przejść do ekranu "Wybierz opcję instalacji", który jest wyświetlany na rysunku 1. W tym miejscu możesz dodać obiekty bazy danych usług aplikacji lub usunąć je z bazy danych. Ponieważ chcemy dodać te obiekty do produkcyjnej bazy danych, wybierz opcję "Konfiguruj SQL Server dla usług aplikacji", a następnie kliknij przycisk Dalej.

Wybierz, aby skonfigurować SQL Server dla usług aplikacji

Rysunek 1. Wybierz, aby skonfigurować SQL Server dla usług Aplikacji (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Na ekranie "Wybierz serwer i baza danych" zostanie wyświetlony monit o podanie informacji, aby nawiązać połączenie z bazą danych. Wprowadź serwer bazy danych, poświadczenia zabezpieczeń i nazwę bazy danych podaną dla Ciebie przez firmę hostingu internetowego, a następnie kliknij przycisk Dalej.

Uwaga

Po wprowadzeniu serwera bazy danych i poświadczeń może wystąpić błąd podczas rozszerzania listy rozwijanej bazy danych. Narzędzie aspnet_regsql.exe wysyła zapytanie do sysdatabases tabeli systemowej w celu pobrania listy baz danych na serwerze, ale niektóre firmy hostingowe sieci Web blokują serwery baz danych, aby te informacje nie były publicznie dostępne. Jeśli wystąpi ten błąd, możesz wpisać nazwę bazy danych bezpośrednio na liście rozwijanej.

Podaj narzędzie z informacjami o połączeniu bazy danych

Rysunek 2. Podaj narzędzie z informacjami o połączeniu bazy danych (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Na kolejnym ekranie podsumowano akcje, które mają zostać wykonane, a mianowicie, że obiekty bazy danych usług aplikacji zostaną dodane do określonej bazy danych. Kliknij przycisk Dalej, aby ukończyć tę akcję. Po kilku chwilach zostanie wyświetlony ekran końcowy, zauważając, że obiekty bazy danych zostały dodane (zobacz Rysunek 3).

Sukces! Obiekty bazy danych usług aplikacji zostały dodane do produkcyjnej bazy danych

Rysunek 3. Sukces! Obiekty bazy danych usług aplikacji zostały dodane do produkcyjnej bazy danych (kliknij, aby wyświetlić obraz o pełnym rozmiarze)

Aby sprawdzić, czy obiekty bazy danych usług aplikacji zostały pomyślnie dodane do produkcyjnej bazy danych, otwórz SQL Server Management Studio i połącz się z produkcyjną bazą danych. Jak pokazano na rysunku 4, tabele baz danych usług aplikacji powinny być teraz widoczne w bazie danych, aspnet_Applications, aspnet_Membership, aspnet_Usersi tak dalej.

Upewnij się, że obiekty bazy danych zostały dodane do produkcyjnej bazy danych

Rysunek 4. Upewnij się, że obiekty bazy danych zostały dodane do produkcyjnej bazy danych (kliknij, aby wyświetlić obraz pełnowymiarowy)

Narzędzie będzie konieczne aspnet_regsql.exe tylko podczas wdrażania aplikacji internetowej po raz pierwszy lub po raz pierwszy po rozpoczęciu korzystania z usług aplikacji. Gdy te obiekty bazy danych znajdują się w produkcyjnej bazie danych, nie będą musiały zostać ponownie dodane ani zmodyfikowane.

Kopiowanie kont użytkowników z programowania do środowiska produkcyjnego

W przypadku używania SqlMembershipProvider klas i SqlRoleProvider do przechowywania informacji o usługach aplikacji w bazie danych SQL Server informacje o koncie użytkownika i roli są przechowywane w różnych tabelach bazy danych, w tym aspnet_Users, aspnet_Membership, aspnet_Rolesi aspnet_UsersInRoles, między innymi. W przypadku tworzenia kont użytkowników w środowisku deweloperskim można replikować te konta użytkowników w środowisku produkcyjnym, kopiując odpowiednie rekordy z odpowiednich tabel bazy danych. Jeśli użyto Kreatora publikowania bazy danych do wdrożenia obiektów bazy danych usług aplikacji, być może wybrano również skopiowanie rekordów, co spowoduje, że konta użytkowników utworzone podczas programowania również będą w środowisku produkcyjnym. Jednak w zależności od ustawień konfiguracji może się okazać, że ci użytkownicy, których konta zostały utworzone w ramach programowania i skopiowane do środowiska produkcyjnego, nie mogą zalogować się z produkcyjnej witryny internetowej. Co daje?

SqlMembershipProvider Klasy i SqlRoleProvider dostawcy zostały zaprojektowane tak, aby pojedyncza baza danych mogła służyć jako magazyn użytkowników dla wielu aplikacji, gdzie każda aplikacja może teoretycznie mieć użytkowników z nakładającymi się nazwami użytkowników i rolami o tej samej nazwie. Aby zapewnić tę elastyczność, baza danych przechowuje listę aplikacji w aspnet_Applications tabeli, a każdy użytkownik jest skojarzony z jedną z tych aplikacji. W szczególności aspnet_Users tabela zawiera kolumnę ApplicationId , która łączy każdego użytkownika z rekordem w aspnet_Applications tabeli.

Oprócz ApplicationId kolumny aspnet_Applications tabela zawiera również kolumnę ApplicationName , która zapewnia bardziej przyjazną dla człowieka nazwę aplikacji. Gdy witryna internetowa próbuje pracować z kontem użytkownika, na przykład weryfikacji poświadczeń użytkownika ze strony logowania, musi poinformować SqlMembershipProvider klasę, z jaką aplikacją będzie działać. Zwykle robi to, podając nazwę aplikacji, a ta wartość pochodzi z konfiguracji dostawcy w systemie Web.config — w szczególności za pośrednictwem atrybutu applicationName .

Ale co się stanie, jeśli applicationName atrybut nie jest określony w Web.config? W takim przypadku system członkostwa używa ścieżki głównej applicationName aplikacji jako wartości. applicationName Jeśli atrybut nie jest jawnie ustawiony w Web.configprogramie , istnieje możliwość, że środowisko programistyczne i środowisko produkcyjne używają innego katalogu głównego aplikacji, a w związku z tym będą skojarzone z różnymi nazwami aplikacji w usługach aplikacji. Jeśli taka niezgodność wystąpi, ci użytkownicy utworzoni w środowisku deweloperskim będą mieli ApplicationId wartość, która nie jest zgodna z ApplicationId wartością środowiska produkcyjnego. Wynikiem netto jest to, że ci użytkownicy nie będą mogli się zalogować.

Uwaga

Jeśli znajdziesz się w tej sytuacji — z kontami użytkowników skopiowanymi do środowiska produkcyjnego z niezgodną ApplicationId wartością — możesz napisać zapytanie, aby zaktualizować te nieprawidłowe ApplicationId wartości do używanej ApplicationId w środowisku produkcyjnym. Po zaktualizowaniu użytkownicy, których konta zostały utworzone w środowisku deweloperskim, będą teraz mogli zalogować się do aplikacji internetowej w środowisku produkcyjnym.

Dobrą wiadomością jest to, że istnieje prosty krok, który można wykonać, aby upewnić się, że dwa środowiska używają tego samego ApplicationId - jawnie ustawić applicationName atrybut dla Web.config wszystkich dostawców usług aplikacji. Jawnie ustawiłem applicationName atrybut na "BookReviews" w elementach <membership> i <roleManager> jako ten fragment kodu z Web.config pokazów.

<membership defaultProvider="ReviewMembership">
    <providers>
        <clear />

        <add type="System.Web.Security.SqlMembershipProvider" 
             name="ReviewMembership" 
             connectionStringName="ReviewsConnectionString" 
             applicationName="BookReviews" />
    </providers>
</membership>

Aby uzyskać więcej dyskusji na temat ustawiania atrybutu applicationName i uzasadnienie za nim, zapoznaj się z wpisem w blogu Scott Guthrie , Always set the applicationName property when configuring ASP.NET Membership and other Providers (Zawsze ustawiaj właściwość applicationName podczas konfigurowania członkostwa ASP.NET i innych dostawców).

Zarządzanie kontami użytkowników w środowisku produkcyjnym

Narzędzie do administrowania witrynami sieci Web (WSAT) ASP.NET ułatwia tworzenie kont użytkowników i zarządzanie nimi, definiowanie i stosowanie ról oraz określanie reguł autoryzacji opartych na użytkownikach i rolach. Możesz uruchomić program WSAT z programu Visual Studio, przechodząc do Eksplorator rozwiązań i klikając ikonę ASP.NET Konfiguracja lub przechodząc do menu Witryna internetowa lub Projekt i wybierając element menu ASP.NET Konfiguracja. Niestety, WSAT może działać tylko z lokalnymi witrynami internetowymi. W związku z tym nie można użyć programu WSAT ze stacji roboczej do zarządzania witryną internetową w środowisku produkcyjnym.

Dobrą wiadomością jest to, że wszystkie funkcje udostępniane przez usługę WSAT są dostępne programowo za pośrednictwem interfejsów API członkostwa i ról; Ponadto wiele ekranów WSAT używa standardowych kontrolek związanych z logowaniem ASP.NET. Krótko mówiąc, można dodać ASP.NET stron do witryny internetowej, które oferują niezbędne możliwości zarządzania.

Pamiętaj, że wcześniejszy samouczek zaktualizował aplikację internetową ~/Admin Recenzje książek w celu uwzględnienia folderu, a ten folder został skonfigurowany tak, aby zezwalał tylko użytkownikom na Administracja roli. Do tego folderu dodano stronę o nazwie , CreateAccount.aspx z której administrator może utworzyć nowe konto użytkownika. Ta strona używa kontrolki CreateUserWizard do wyświetlania interfejsu użytkownika i logiki zaplecza do tworzenia nowego konta użytkownika. Co więcej, dostosowano kontrolkę tak, aby zawierała kontrolkę CheckBox, która wyświetla monit o dodanie nowego użytkownika do roli Administracja (zobacz Rysunek 5). Przy odrobinie pracy można utworzyć niestandardowy zestaw stron, który implementuje zadania związane z zarządzaniem użytkownikami i rolami, które w przeciwnym razie będą udostępniane przez usługę WSAT.

Uwaga

Aby uzyskać więcej informacji na temat korzystania z interfejsów API członkostwa i ról wraz z kontrolkami ASP.NET sieci Web związanych z logowaniem, zapoznaj się z samouczkami dotyczącymi zabezpieczeń witryny sieci Web. Aby uzyskać więcej informacji na temat dostosowywania kontrolki CreateUserWizard, zapoznaj się z samouczkami Tworzenie kont użytkowników i Przechowywanie dodatkowych informacji o użytkowniku lub zapoznaj się z artykułem Erich Peterson , Dostosowywanie kontrolki CreateUserWizard.

Administratorzy mogą tworzyć nowe konta użytkowników

Rysunek 5. Administratorzy mogą tworzyć nowe konta użytkowników (kliknij, aby wyświetlić obraz pełnowymiarowy)

Jeśli potrzebujesz pełnej funkcjonalności narzędzia WSAT, zapoznaj się z narzędziem Rolling Your Own Web Site Administration Tool, w którym autor Dan Clem przeprowadzi cię przez proces tworzenia niestandardowego narzędzia przypominającego program WSAT. Dan udostępnia kod źródłowy swojej aplikacji (w języku C#) i zawiera instrukcje krok po kroku dotyczące dodawania go do hostowanej witryny internetowej.

Podsumowanie

Podczas wdrażania aplikacji internetowej korzystającej z implementacji bazy danych usług aplikacji należy najpierw upewnić się, że produkcyjna baza danych ma wymagane obiekty bazy danych. Te obiekty można dodać przy użyciu technik omówionych w samouczku Wdrażanie bazy danych ; możesz też użyć aspnet_regsql.exe narzędzia, jak pokazano w tym samouczku. Inne wyzwania, które poruszyliśmy w centrum wokół synchronizowania nazwy aplikacji używanej w środowiskach deweloperskich i produkcyjnych (co jest ważne, jeśli chcesz, aby użytkownicy i role utworzone w środowisku deweloperskim były prawidłowe w środowisku produkcyjnym) i techniki zarządzania użytkownikami i rolami w środowisku produkcyjnym.

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: