Uživatelé a role na produkčním webu (VB)
Poznámka
Od napsání tohoto článku jsou zprostředkovatelé členství ASP.NET nahrazeni ASP.NET Identity. Důrazně doporučujeme aktualizovat aplikace tak, aby používaly platformu ASP.NET Identity Platform místo zprostředkovatelů členství, které byly uvedené v době psaní tohoto článku. ASP.NET Identity má oproti systému členství ASP.NET řadu výhod, mezi které patří:
- Lepší výkon
- Vylepšená rozšiřitelnost a testovatelnost
- Podpora OAuth, OpenID Connect a dvojúrovňového ověřování
- Podpora identit na základě deklarací identity
- Lepší interoperabilita s ASP.Net Core
Nástroj pro správu webu ASP.NET (WSAT) poskytuje webové uživatelské rozhraní pro konfiguraci nastavení členství a rolí a pro vytváření, úpravy a odstraňování uživatelů a rolí. WSAT bohužel funguje pouze při návštěvě z localhost, což znamená, že se přes prohlížeč nemůžete spojit s nástrojem pro správu produkčního webu. Dobrou zprávou je, že existují alternativní řešení, která umožňují spravovat uživatele a role v produkčním prostředí. Tento kurz se zabývá těmito a dalšími alternativními řešeními.
Úvod
ASP.NET 2.0 zavedla řadu aplikačních služeb, což je sada služeb stavebních bloků, které můžete přidat do webové aplikace. Služby Členství a role jsme přidali na web Kontroly knih zpět v kurzu Konfigurace webu, který používá aplikační služby. Členská služba usnadňuje vytváření a správu uživatelských účtů; Služba Role nabízí rozhraní API pro kategorizaci uživatelů do skupin. Stránka Book Reviews má tři uživatelské účty - Scott, Jisun a Alice - a jednu roli, Správa, se Scottem a Jisunem v Správa roli.
ASP. Aplikační služby net nejsou vázané na konkrétní implementaci. Místo toho dáte aplikačním službám pokyn, aby používaly konkrétního poskytovatele, a tento poskytovatel službu implementuje pomocí konkrétní technologie. Nakonfigurovali jsme webovou aplikaci Book Reviews tak, aby používala SqlMembershipProvider
poskytovatele a SqlRoleProvider
pro služby Členství a Role. Tito dva zprostředkovatelé ukládají informace o uživatelských účtech a rolích do SQL Server databáze a jsou nejčastěji používanými poskytovateli internetových webových aplikací hostovaných ve společnosti hostující web.
Běžnou výzvou pro vývojáře, kteří používají služby Členství a Role, je správa uživatelů a rolí v produkčním prostředí. Jak odstraníte uživatelský účet z produkčního webu, přidáte novou roli nebo přidáte existujícího uživatele do existující role? Tento kurz zkoumá různé techniky správy uživatelů a rolí na produkčním webu.
Použití nástroje pro správu webu ASP.NET
ASP.NET obsahuje nástroj pro správu webu (WSAT), který usnadňuje vytváření a správu uživatelských účtů a rolí a zadávání pravidel autorizace na základě uživatelů a rolí. Chcete-li použít WSAT, klikněte na ikonu konfigurace ASP.NET v Průzkumník řešení nebo přejděte do nabídky Web nebo projekt a zvolte možnost konfigurace ASP.NET. Oba přístupy spustí webový prohlížeč a nasmílají ho na WSAT na adresu, jako je: http://localhost:portNumber/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=pathToApplication
WsAT je rozdělen do tří částí:
- Zabezpečení – správa uživatelů, rolí a autorizačních pravidel
- ApplicationConfiguration – tady můžete spravovat <nastavení appSettings> a SMTP. Můžete také převést aplikaci do režimu offline a spravovat nastavení ladění a trasování a zadat výchozí vlastní chybovou stránku.
- ProviderConfiguration – nakonfiguruje zprostředkovatele používané aplikačními službami.
Část Zabezpečení (znázorněná na obrázku 1) obsahuje odkazy pro vytváření nových uživatelů, správu uživatelů, vytváření a správu rolí a vytváření a správu pravidel přístupu. Tady můžete do systému přidat novou roli, odstranit existujícího uživatele nebo přidat nebo odebrat role z určitého uživatelského účtu.
Obrázek 1: Část zabezpečení WSAT obsahuje možnosti pro správu uživatelů a rolí
(Kliknutím zobrazíte obrázek v plné velikosti.)
WsAT je bohužel přístupný jenom místně. WsAT nemůžete navštívit na svém vzdáleném produkčním webu. Pokud navštívíte www.yoursite.com/asp.netwebadminfiles/default.aspx
, zobrazí se odpověď 404 Nenalezena. Kód, který pohání WSAT, používá Membership
třídy a Roles
v rozhraní .NET Framework k vytváření, úpravám a odstraňování uživatelů a rolí. Tyto třídy nahlédnou do konfiguračních informací webové aplikace, aby určily, jakého zprostředkovatele použít; V kurzu Konfigurace webu, který používá aplikační služby nastavíme web Recenze knih tak, aby používal SqlMembershipProvider
poskytovatele aSqlRoleProvider
. To znamenalo přidání <membership>
oddílů a <roleManager>
do Web.config
.
<?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>
Všimněte si <membership>
, že oddíly a <roleManager>
odkazují na SqlMembershipProvider
zprostředkovatele a SqlRoleProvider
ve svém type
atributu. Tito zprostředkovatelé ukládají informace o uživatelích a rolích do zadané databáze SQL Server. Databáze používaná těmito poskytovateli je určena atributem connectionStringName
ReviewsConnectionString
, který je definován v ~/ConfigSections/databaseConnectionStrings.config
souboru. Připomínáme, že databaseConnectionStrings.config
soubor ve vývojovém prostředí obsahuje připojovací řetězec k vývojové databázi, zatímco databaseConnectionStrings.config
soubor v produkčním prostředí obsahuje připojovací řetězec k produkční databázi.
Stručně řečeno, WSAT musí být přístupný místně prostřednictvím vývojového prostředí a funguje s informacemi o uživateli a roli v databázi zadané v databaseConnectionStrings.config
souboru. V důsledku toho, pokud změníme informace o připojovacím řetězci v databaseConnectionStrings.config
souboru ve vývojovém prostředí, můžeme použít WSAT místně ke správě uživatelů a rolí v produkčním prostředí.
Pro ilustraci této funkce otevřete databaseConnectionStrings.config
soubor v sadě Visual Studio ve vývojovém prostředí a nahraďte připojovací řetězec vývojové databáze připojovacím řetězcem produkční databáze. Pak spusťte WSAT, přejděte na kartu Zabezpečení a přidejte nového uživatele s názvem Sam s heslem "password!" (bez uvozovek). Obrázek 2 znázorňuje obrazovku WSAT při vytváření tohoto účtu.
Obrázek 2: Vytvoření nového uživatele s názvem Sam v produkčním prostředí
(Kliknutím zobrazíte obrázek v plné velikosti.)
Vzhledem k tomu, že jsme změnili připojovací řetězec v souboru databaseConnectionStrings.config
tak, aby odkazoval na server produkční databáze, přidal se Sam jako uživatel do produkčního prostředí. Chcete-li to ověřit, změňte připojovací řetězec v databaseConnectionStrings.config
souboru zpět na vývojovou databázi a pak přejděte na Login.aspx
stránku ve vývojovém prostředí. Zkuste se přihlásit jako Sam (viz Obrázek 3).
Obrázek 3: Ve vývojovém prostředí se nemůžete přihlásit jako Sam
(Kliknutím zobrazíte obrázek v plné velikosti.)
Ve vývojovém prostředí se nemůžete přihlásit jako Sam, protože informace o uživatelském účtu v místní databázi neexistují. Místo toho byl přidán do produkční databáze. Chcete-li to ověřit, zobrazte obsah aspnet_Users
tabulky ve vývojové i produkční databázi. Ve vývojovém prostředí by měly být pouze tři záznamy pro uživatele Scott, Jisun a Alice. aspnet_Users
Tabulka v produkční databázi ale obsahuje čtyři záznamy: Scott, Jisun, Alice a Sam. V důsledku toho se Sam může přihlásit prostřednictvím webu v produkčním prostředí, ale ne prostřednictvím vývojového prostředí.
Obrázek 4: Sam se může přihlásit na produkčním webu
(Kliknutím zobrazíte obrázek v plné velikosti.)
Poznámka
Po dokončení práce s WSAT nezapomeňte změnit připojovací řetězec v databaseConnectionStrings.config
souboru zpět na připojovací řetězec vývojové databáze, jinak budete při testování lokality prostřednictvím vývojového prostředí pracovat s produkčními daty. Mějte také na paměti, že zatímco technika, kterou jsme právě probírali, umožňuje použít WSAT ke vzdálené správě uživatelů a rolí, změny v libovolné z dalších možností konfigurace WSAT (přístupová pravidla, nastavení PROTOKOLU SMTP, nastavení ladění a trasování atd.) upraví Web.config
soubor. V důsledku toho se všechny změny provedené v nastavení použijí pro vývojové prostředí, a ne pro produkční prostředí.
Vytváření vlastních webových stránek pro správu uživatelů a rolí
WSAT poskytuje systém pro správu uživatelů a rolí, ale je možné ho spustit pouze místně a vyžaduje provedení změn v informacích připojovacího řetězce, aby bylo možné spravovat uživatele a role v produkčním prostředí. Většina webů, které podporují uživatelské účty, obsahuje také řadu webových stránek správy uživatelů a rolí, které správcům umožňují spravovat uživatele a role ze stránek na webu. Tyto webové stránky správy usnadňují správu uživatelů a rolí a jsou nezbytné pro weby, kde může existovat mnoho správců nebo správců, kteří nemají přístup nebo technické zázemí pro použití sady Visual Studio ke spuštění WSAT.
ASP.NET obsahuje řadu předdefinovaných webových ovládacích prvků souvisejících s přihlášením, které usnadňují implementaci mnoha těchto webových stránek pro správu, jako je přetažení. Můžete například vytvořit stránku pro správce, aby vytvořili nový uživatelský účet přetažením ovládacího prvku CreateUserWizard na stránku a nastavením několika vlastností. Ve skutečnosti stránka pro vytváření uživatelů ve WSAT zobrazeném na obrázku 2 používá stejný ovládací prvek CreateUserWizard, který můžete přidat na stránky. Kromě toho jsou funkce služeb Členství a Role dostupné programově prostřednictvím Membership
tříd a Roles
v rozhraní .NET Framework. Pomocí těchto tříd můžete psát kód pro vytváření, úpravu a odstraňování uživatelů a rolí, přidávání nebo odebírání uživatelů do rolí, určení uživatelů v jakých rolích a provádění dalších úloh souvisejících s uživatelem a rolemi.
V kurzu Konfigurace webu, který používá aplikační služby jsem přidal(a) stránku do Admin
složky s názvem CreateAccount.aspx
. Tato stránka umožňuje správci přidat na web nový uživatelský účet a určit, jestli je nově vytvořený uživatel v Správa roli (viz obrázek 5).
Obrázek 5: Správci můžou vytvářet nové uživatelské účty
(Kliknutím zobrazíte obrázek v plné velikosti.)
Podrobnější informace o vytváření stránek pro správu uživatelů a rolí spolu s podrobnými pokyny k používání Membership
tříd a tříd a Roles
ASP.NET webových ovládacích prvků souvisejících s přihlášením najdete v mých kurzech zabezpečení webu. Tady najdete pokyny k vytváření webových stránek pro vytváření nových účtů, vytváření a správu rolí, přiřazování uživatelů k rolím a další běžné úlohy správy.
Pokud chcete implementovat funkce podobné WSAT na produkčním webu, můžete vždy vytvořit vlastní řadu webových stránek, které implementují funkce WSAT. Pokud chcete začít, podívejte se na zdrojový kód WSAT, který se nachází ve složce %WINDIR%\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles
. Další možností je použít alternativu WSAT Dana Clema, kterou sdílí ve svém článku Rolling Your Own Web Site Administration Tool. Dan provede čtenáře procesem vytvoření vlastního nástroje podobného WSAT, zahrne zdrojový kód své aplikace ke stažení (v jazyce C#) a poskytne podrobné pokyny pro přidání vlastního WSAT na hostovaný web.
Souhrn
Nástroj ASP.NET Web Site Administration Tool (WSAT) lze použít společně s aplikačními službami Členství a Role ke správě informací o uživatelích a rolích pro váš web. WsAT je bohužel přístupný pouze místně a nelze ho navštívit z vašeho produkčního webu. Pokud ale změníte připojovací řetězec ve vývojovém prostředí tak, aby odkazoval na produkční databázi, můžete použít WSAT ke správě uživatelů a rolí na produkčním webu.
Přístup WSAT sice poskytuje rychlý a snadný způsob správy uživatelů a rolí, ale vyžaduje spuštění WSAT ze sady Visual Studio a také dočasné změny informací o připojovacím řetězci. WSAT nabízí rychlý způsob, jak spravovat uživatele a role v produkčním prostředí, ale je těžkopádný a nefunguje dobře pro weby s více správci nebo správci, kteří nemají nebo nejsou obeznámeni se sadou Visual Studio a WSAT. Z těchto důvodů většina webů, které podporují uživatelské účty, obsahuje sadu webových stránek pro správu. Taková sada webových stránek eliminuje potřebu WSAT a používá různé administrativní uživatele z libovolného počítače.
Všechno nejlepší na programování!
Další čtení
Další informace o tématech probíraných v tomto kurzu najdete v následujících zdrojích informací:
- Zkoumání asp. Členství, role a profil pro platformu NET
- Uvedení vlastního nástroje pro správu webu
- Přehled nástroje pro správu webu
- Kurzy zabezpečení webů