Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
által Scott Mitchell
Megjegyzés:
A cikk írása óta a ASP.NET tagsági szolgáltatókat felváltotta ASP.NET Identity. Határozottan javasoljuk, hogy frissítse az alkalmazásokat a ASP.NET Identitásplatform használatára a cikk írásának időpontjában kiemelt tagsági szolgáltatók helyett. ASP.NET Identitás számos előnnyel rendelkezik a ASP.NET tagsági rendszerrel szemben, beleértve a következőket:
- Jobb teljesítmény
- Jobb bővíthetőség és tesztelhetőség
- Az OAuth, az OpenID Connect és a kéttényezős hitelesítés támogatása
- Jogcímalapú identitástámogatás
- Jobb együttműködés a ASP.Net Core-jal
A ASP.NET webhelyfelügyeleti eszköz (WSAT) webes felhasználói felületet biztosít a tagsági és szerepkör-beállítások konfigurálásához, valamint a felhasználók és szerepkörök létrehozásához, szerkesztéséhez és törléséhez. Sajnos a WSAT csak akkor működik, ha a localhost webhelyet látogatja meg, ami azt jelenti, hogy a böngészőn keresztül nem érheti el az éles webhely adminisztrációs eszközét. A jó hír az, hogy vannak áthidaló megoldások, amelyek lehetővé teszik a felhasználók és szerepkörök kezelését az éles környezetben. Ez az oktatóanyag ezeket és más megoldásokat vizsgálja.
Bevezetés
ASP.NET 2.0 számos alkalmazásszolgáltatást vezetett be, amelyek olyan építőelem-szolgáltatások, amelyeket hozzáadhat a webalkalmazáshoz. A Tagság- és szerepkör-szolgáltatásokat a Könyvértékelések webhelyhez a Webhely konfigurálása alkalmazási szolgáltatások használatával oktatóanyagban adtuk hozzá. A tagsági szolgáltatás megkönnyíti a felhasználói fiókok létrehozását és kezelését; A Szerepkörök szolgáltatás egy API-t kínál a felhasználók csoportokba való kategorizálásához. A Könyvajánlók webhely három felhasználói fiókkal rendelkezik – Scott, Jisun és Alice –, valamint egyetlen szerepkörrel, a rendszergazdai, amelyben Scott és Jisun szerepelnek.
Az ASP.NET alkalmazásszolgáltatásai nincsenek egy adott implementációhoz kötve. Ehelyett arra utasítja az alkalmazásszolgáltatásokat, hogy egy adott szolgáltatót használjanak, és ez a szolgáltató egy adott technológia használatával valósítja meg a szolgáltatást. A Book Reviews webalkalmazást úgy konfiguráltuk, hogy a tagság és a szerepkör szolgáltatásaihoz a SqlMembershipProvider és SqlRoleProvider szolgáltatókat használja. Ez a két szolgáltató egy SQL Server-adatbázisban tárolja a felhasználói fiók és a szerepkör adatait, és a leggyakrabban használt szolgáltatók internetes webalkalmazásokhoz egy webszolgáltató vállalatnál.
A tagsági- és szerepkör-szolgáltatásokat használó fejlesztők számára az éles környezetben a felhasználók és szerepkörök kezelése gyakori kihívás. Hogyan távolíthat el egy felhasználói fiókot a működő webhelyről, adhat hozzá új szerepkört, vagy vehet fel egy meglévő felhasználót egy meglévő szerepkörbe? Ez az oktatóanyag a felhasználók és a szerepkörök kezelési módszereit mutatja be a produkciós környezetben lévő webhelyen.
A ASP.NET webhelyfelügyeleti eszköz használata
ASP.NET tartalmaz egy webhelyfelügyeleti eszközt (WSAT), amely megkönnyíti a felhasználói fiókok és szerepkörök létrehozását és kezelését, valamint a felhasználó- és szerepköralapú engedélyezési szabályok megadását. A WSAT használatához kattintson a ASP.NET Konfiguráció ikonra a Megoldáskezelőben, vagy nyissa meg a Webhely vagy a Projekt menüt, és válassza a ASP.NET Konfiguráció lehetőséget. Bármelyik megközelítés elindít egy webböngészőt, és megnyitja a WSAT-ot a következő címen: http://localhost:portNumber/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=pathToApplication
A WSAT három részből áll:
- Biztonság – felhasználók, szerepkörök és engedélyezési szabályok kezelése.
- ApplicationConfiguration – innen kezelheti az appSettings< és az >SMTP beállításait. Az alkalmazást offline állapotba is helyezheti, és innen kezelheti a hibakeresési és nyomkövetési beállításokat, valamint megadhatja az alapértelmezett egyéni hibalapot.
- ProviderConfiguration – konfigurálja az alkalmazásszolgáltatások által használt szolgáltatókat.
A Biztonság szakasz (az 1. ábrán látható) új felhasználók létrehozására, a felhasználók kezelésére, a szerepkörök létrehozására és kezelésére, valamint a hozzáférési szabályok létrehozására és kezelésére szolgáló hivatkozásokat tartalmaz. Innen hozzáadhat egy új szerepkört a rendszerhez, törölhet egy meglévő felhasználót, vagy felvehet vagy eltávolíthat szerepköröket egy adott felhasználói fiókból.
1. ábra: A WSAT biztonsági szakasza a felhasználók és szerepkörök kezelésének lehetőségeit tartalmazza
(Ide kattintva megtekintheti a teljes méretű képet)
Sajnos a WSAT csak helyileg érhető el. Nem látogathatja meg a WSAT-t a távoli éles webhelyén; ha meglátogatja www.yoursite.com/asp.netwebadminfiles/default.aspx , kap egy 404 Nem található választ. A WSAT-t irányító kód a Membership .NET-keretrendszer osztályait és Roles osztályait használja felhasználók és szerepkörök létrehozására, szerkesztésére és törlésére. Ezek az osztályok a webalkalmazás konfigurációs információi alapján határozzák meg, hogy melyik szolgáltatót használják; A Application Services-t használó webhely konfigurálása című oktatóanyagban konfiguráltuk a Könyvértékelések webhelyet a SqlMembershipProvider és SqlRoleProvider szolgáltatók használatára. Ez magában foglalta a <membership> és <roleManager> részek hozzáadását 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>
Vegye figyelembe, hogy a <membership> és <roleManager> szakaszok az SqlMembershipProvider attribútumukban szereplő SqlRoleProvider és type szolgáltatókra hivatkoznak. Ezek a szolgáltatók a felhasználó és a szerepkör adatait egy megadott SQL Server-adatbázisban tárolják. A szolgáltatók által használt adatbázist a connectionStringName attribútum, ReviewsConnectionString, határozza meg, amely a ~/ConfigSections/databaseConnectionStrings.config fájlban van definiálva. Ne feledje, hogy a databaseConnectionStrings.config fejlesztési környezetben lévő fájl tartalmazza a fejlesztési adatbázis kapcsolati sztringét, míg az databaseConnectionStrings.config éles környezetben lévő fájl az éles adatbázis kapcsolati sztringét.
Dióhéjban a WSAT-t helyileg kell elérni a fejlesztési környezeten keresztül, és a fájlban databaseConnectionStrings.config megadott adatbázisban lévő felhasználó- és szerepkör-információkkal működik együtt. Ennek következtében, ha módosítjuk a fejlesztési környezetben található databaseConnectionStrings.config fájl kapcsolati sztringadatait, helyileg használhatjuk a WSAT-ot a felhasználók és szerepkörök kezelésére az éles környezetben.
A funkció szemléltetéséhez nyissa meg a databaseConnectionStrings.config fájlt a fejlesztői környezetben, a Visual Studioban, és cserélje le a fejlesztési adatbázis kapcsolati láncot az éles adatbázis kapcsolati láncára. Ezután indítsa el a WSAT-t, lépjen a Biztonság lapra, és vegyen fel egy Sam nevű új felhasználót.
A 2. ábrán a WSAT képernyő látható a fiók létrehozásakor.
2. ábra: Új, Sam nevű felhasználó létrehozása az éles környezetben
(Ide kattintva megtekintheti a teljes méretű képet)
Mivel módosítottuk a kapcsolati sztringet databaseConnectionStrings.config, hogy az éles adatbázis-kiszolgálóra mutasson, Samet felhasználóként adtuk hozzá az éles környezethez. Annak ellenőrzéséhez, változtassa vissza a databaseConnectionStrings.config fájlban lévő kapcsolati sztringet a fejlesztési adatbázisra, majd látogassa meg a Login.aspx oldalt a fejlesztői környezetben. Próbáljon meg Samként bejelentkezni (lásd a 3. ábrát).
3. ábra: Nem lehet samként bejelentkezni a fejlesztői környezetben
(Ide kattintva megtekintheti a teljes méretű képet)
A fejlesztői környezetben nem lehet Samként bejelentkezni, mert a felhasználói fiók adatai nem léteznek a helyi adatbázisban. Ehelyett az éles adatbázishoz lett hozzáadva. Ennek ellenőrzéséhez tekintse meg a aspnet_Users tábla tartalmát a fejlesztési és az éles adatbázisokban. A fejlesztői környezetben csak három rekordnak kell lennie Scott, Jisun és Alice felhasználók számára. Az aspnet_Users termelési adatbázis táblájában azonban négy rekord található: Scott, Jisun, Alice és Sam. Következésképpen Sam a webhelyen keresztül is bejelentkezhet éles környezetben, a fejlesztői környezetben azonban nem.
4. ábra: Sam bejelentkezhet a gyártási webhelyen
(Ide kattintva megtekintheti a teljes méretű képet)
Megjegyzés:
Ne felejtse el visszaállítani a databaseConnectionStrings.config fájlban található kapcsolati sztringet a fejlesztői adatbázis kapcsolati sztringjére, ha végzett a WSAT használatával, különben a tesztelés során éles adatokat fog használni a fejlesztési környezetben. Ne feledje azt is, hogy bár az imént tárgyalt technika lehetővé teszi a WSAT használatát a felhasználók és szerepkörök távoli kezeléséhez, a többi WSAT-konfigurációs beállítás (hozzáférési szabályok, SMTP-beállítások, hibakeresési és nyomkövetési beállítások stb.) módosítása módosítja a Web.config fájlt. Következésképpen a beállítások módosításai a fejlesztési környezetre vonatkoznak, nem pedig a prod környezetre.
Egyéni felhasználó- és szerepkörkezelési weblapok létrehozása
A WSAT egy beépített rendszert biztosít a felhasználók és a szerepkörök kezeléséhez, de csak helyileg indítható el, és módosítania kell a kapcsolati sztring adatait a felhasználók és szerepkörök éles környezetben való kezeléséhez. A felhasználói fiókokat támogató webhelyek többsége számos felhasználói és szerepkör-felügyeleti weblapot is tartalmaz, amelyek lehetővé teszik a rendszergazdák számára a felhasználók és szerepkörök kezelését a webhely lapjairól. Az ilyen webes felügyeleti oldalak jelentősen megkönnyítik a felhasználók és szerepkörök kezelését, és elengedhetetlenek azokban az esetekben, amikor a webhelyen sok rendszergazda van, vagy a rendszergazdák némelyike nem rendelkezik a Visual Studio használatához szükséges hozzáféréssel vagy technikai háttérrel a WSAT elindításához.
ASP.NET számos beépített bejelentkezéssel kapcsolatos webes vezérlőt tartalmaz, amelyek megkönnyítik ezen felügyeleti weblapok nagy részének végrehajtását. Létrehozhat például egy lapot a rendszergazdák számára egy új felhasználói fiók létrehozásához, ha a CreateUserWizard vezérlőt a lapra húzza, és beállít néhány tulajdonságot. A 2. ábrán látható WSAT-felhasználók létrehozására szolgáló oldal ugyanazt a CreateUserWizard vezérlőt használja, amelyet hozzáadhat a lapokhoz. Emellett a tagsági és szerepkör-szolgáltatások funkciói programozott módon érhetők el a Membership .NET-keretrendszerben található osztályokon Roles keresztül. Ezekkel az osztályokkal kódot írhat a felhasználók és szerepkörök létrehozásához, szerkesztéséhez és törléséhez, valamint felhasználók szerepkörökhöz való hozzáadásához vagy eltávolításához, annak meghatározásához, hogy mely felhasználók milyen szerepkörökben vannak, valamint más felhasználóval és szerepkörrel kapcsolatos feladatokat is végrehajthat.
Az Application Servicest használó webhely konfigurálása oktatóanyagban hozzáadtam egy lapot a Admin nevű CreateAccount.aspxmappához. Ezen a lapon a rendszergazda új felhasználói fiókot vehet fel a webhelyre, és megadhatja, hogy az újonnan létrehozott felhasználó rendszergazdai szerepkörrel rendelkezik-e (lásd az 5. ábrát).
5. ábra: A rendszergazdák új felhasználói fiókokat hozhatnak létre
(Ide kattintva megtekintheti a teljes méretű képet)
Ha részletesebben szeretné áttekinteni a felhasználói és szerepkör-adminisztrációs lapok készítését, valamint lépésről lépésre szóló útmutatót keres a Membership és Roles osztályok, illetve a bejelentkezéssel kapcsolatos ASP.NET webes vezérlők használatához, mindenképpen olvassa el webhelyem biztonsági oktatóanyagait. Itt útmutatást talál arról, hogyan hozhat létre weblapokat új fiókok létrehozásához, szerepkörök létrehozásához és kezeléséhez, felhasználók szerepkörökhöz való hozzárendeléséhez és egyéb gyakori felügyeleti feladatokhoz.
A WSAT-szerű funkciók éles weboldalon való megvalósításához mindig megvalósíthatja saját weboldalak sorozatát, amelyek megvalósítják a WSAT funkcióit. Az első lépésekhez tekintse meg a mappában %WINDIR%\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFilestalálható WSAT-forráskódot. Egy másik lehetőség, hogy használja Dan Clem WSAT alternatívát, amelyet megoszt a cikkben, Rolling Your Own Web Site Administration Tool. Dan végigvezeti az olvasókat az egyéni WSAT-szerű eszköz létrehozásának folyamatán, tartalmazza az alkalmazás letöltési forráskódját (C#-ban), és részletes utasításokat ad az egyéni WSAT-nek egy üzemeltetett webhelyhez való hozzáadásához.
Összefoglalás
A ASP.NET webhelyfelügyeleti eszköz (WSAT) a tagsági és szerepkör-alkalmazásszolgáltatásokkal együtt használható a webhely felhasználói és szerepköradatainak kezeléséhez. Sajnos a WSAT csak helyileg érhető el, és nem látogatható az éles webhelyről. Ha azonban módosítja a kapcsolat sztringjét a fejlesztői környezetben úgy, hogy az az éles adatbázisra mutasson, a Webhely Felhasználó és Szerepkör Adminisztrációs Eszköz (WSAT) használatával kezelheti a felhasználókat és a szerepköröket az éles webhelyen.
Bár a WSAT-megközelítés lehetővé teszi a felhasználók és szerepkörök gyors és egyszerű kezelését, szükséges a WSAT elindítása a Visual Studióból, valamint a kapcsolati sztring információinak ideiglenes módosítása. A WSAT gyors módot kínál a felhasználók és szerepkörök éles környezetben való kezelésére, de nehézkes, és nem működik jól több rendszergazdával rendelkező webhelyeken, illetve olyan rendszergazdáknál, akik nem ismerik vagy nem ismerik a Visual Studiót és a WSAT-t. Ezért a felhasználói fiókokat támogató webhelyek többsége felügyeleti weblapokat tartalmaz. Az ilyen weblapok nem igénylik a WSAT-t, és bármely számítógép különböző rendszergazdai felhasználói használják.
Boldog programozást!
További olvasás
Az oktatóanyagban tárgyalt témakörökről az alábbi forrásokban talál további információt:
- Az ASP.NET tagság, szerepkörök és profilok vizsgálata
- Saját webhelyfelügyeleti eszköz készítése
- Webhelyfelügyeleti eszköz áttekintése
- Webhely biztonsági oktatóanyagai