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 azt a localhostról éri el, 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 a kerülő megoldásokat és egyéb 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ági és szerepkörök szolgáltatásait már a(z)
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 SqlMembershipProvider és SqlRoleProvider szolgáltatókat használja a tagsági és szerepkör-szolgáltatásokhoz. 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 gyakori kihívás a felhasználók és szerepkörök kezelése az éles környezetben. Hogyan törölhet felhasználói fiókot az éles webhelyről, hozhat létre új szerepkört, vagy adhat hozzá meglévő felhasználót egy meglévő szerepkörhöz? Ez az oktatóanyag a felhasználók és a szerepkörök a termelési webhelyen történő kezelésének különböző módszereit mutatja be.
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 a következő címen mutat a WSAT-ra: 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 érdemes használni; az Application Servicest használó webhely konfigurálása oktatóanyagban beállítottuk 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> szakaszok hozzáadását a Web.config-hoz.
<?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 és SqlRoleProvider szolgáltatókra hivatkoznak a type attribútumukban, rendre. 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 határozza meg, amely a ReviewsConnectionString 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ői környezetben lévő databaseConnectionStrings.config fájl kapcsolati sztringadatait, helyileg használhatjuk a WSAT-t a felhasználók és szerepkörök kezelésére a produkciós környezetben.
A funkció szemléltetéséhez nyissa meg a fájlt a databaseConnectionStrings.config Visual Studióban a fejlesztői környezetben, és cserélje le a fejlesztési adatbázis kapcsolati sztringet az éles adatbázis kapcsolati sztringjével. 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, Sam-et felhasználóként hozzáadtuk az éles környezethez. Ennek ellenőrzéséhez változtassa meg 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. Inkább az éles adatbázishoz lett hozzáadva. Ennek ellenőrzéséhez tekintse meg a aspnet_Users táblázat tartalmát mind a fejlesztési, mind 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 éles adatbázis táblájában azonban négy bejegyzés 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 bejelentkezik a termelési weboldalon
(Ide kattintva megtekintheti a teljes méretű képet)
Megjegyzés:
Ne felejtse el a databaseConnectionStrings.config fájlban lévő kapcsolati karakterláncot visszaállítani a fejlesztői adatbázis karakterláncára, miután végzett a WSAT használatával, különben éles adatokkal fog dolgozni, ha a webhelyet a fejlesztési környezetben teszteli. 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 az éles 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 webalapú felügyeleti oldalak megkönnyítik a felhasználók és a szerepkörök kezelését, és nélkülözhetetlenek azok számára a webhelyek számára, ahol sok rendszergazda van, vagy ahol a rendszergazdák nem rendelkeznek hozzáféréssel vagy technikai háttérrel a Visual Studio használatához a WSAT elindítására.
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, lépésről lépésre szóló útmutatóval együtt az Membership és Roles osztályok, valamint a bejelentkezéssel kapcsolatos ASP.NET webes vezérlők használatához, mindenképpen olvassa el a webhely 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 webhelyen való implementálásához mindig létrehozhat saját weblapokat, amelyek megvalósítják a WSAT által kínált funkciókat. 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ó a fejlesztési környezet webhelyéről. Azonban, ha módosítja a fejlesztési környezetben a kapcsolati sztringet úgy, hogy az az éles adatbázisra mutasson, a WSAT segítségével 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ának, szerepköreinek és profiljának vizsgálata
- Saját webhelyfelügyeleti eszköz készítése
- Webhelyfelügyeleti eszköz áttekintése
- Webhely biztonsági oktatóanyagai