Roles Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Kezeli a szerepkörök felhasználói tagságát az ASP.NET-alkalmazásokban való engedélyezés ellenőrzéséhez. Ez az osztály nem örökölhető.
public ref class Roles abstract sealed
public static class Roles
type Roles = class
Public Class Roles
- Öröklődés
-
Roles
Példák
Az alábbi példa egy ASP.NET tagság és ASP.NET szerepkör használatára konfigurált alkalmazás Web.config fájlja, valamint a SqlRoleProvider használatával tárolja a tagsági és szerepköradatokat egy SQL Server-adatbázisban. A felhasználók hitelesítése űrlaphitelesítéssel történik, és csak a Rendszergazdák szerepkörben lévő felhasználók férhetnek hozzá az alkalmazáshoz.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
<membership defaultProvider="AspNetSqlProvider" userIsOnlineTimeWindow="15">
</membership>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="true"
cookieSlidingExpiration="true"
cookieProtection="All" >
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
</system.web>
</configuration>
Az alábbi példakód programozott módon ellenőrzi, hogy a bejelentkezett felhasználó szerepel-e a Rendszergazdák szerepkörben, mielőtt lehetővé tenné a felhasználó számára a többi felhasználó szerepköreinek megtekintését.
Megjegyzések
ASP.NET szerepkör-kezelés lehetővé teszi az alkalmazás engedélyezésének kezelését a felhasználók csoportjai, más néven szerepkörök alapján. A felhasználók szerepkörökhöz való hozzárendelésével szabályozhatja a webalkalmazás különböző részeihez vagy funkcióihoz való hozzáférést szerepkör alapján, nem pedig a felhasználónév alapján történő engedélyezés megadásával. Egy alkalmazotti alkalmazás például rendelkezhet olyan szerepkörökkal, mint a Vezetők, Alkalmazottak, Igazgatók stb., ahol különböző jogosultságok vannak megadva az egyes szerepkörökhöz.
A felhasználók több szerepkörhöz is tartozhatnak. Ha például a webhely egy vitafórum, előfordulhat, hogy egyes felhasználók a tagok és a moderátorok szerepét is betöltik. Az egyes szerepköröket úgy határozhatja meg, hogy különböző jogosultságokkal rendelkezzenek a webhelyen, és egy mindkét szerepkörben lévő felhasználó mindkét jogosultságkészlettel rendelkezik.
A ASP.NET alkalmazás szerepkör-felügyeletének engedélyezéséhez használja a roleManagersystem.web szakaszát az alkalmazás Web.config fájljában az alábbi példában látható módon.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All" >
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
</system.web>
</configuration>
Megadhatja az engedélyezési szabályokat a webalkalmazás konfigurációs fájljában, vagy programozott módon a kódban. Például egy Web.config fájl következő engedélyezési szakasza megköveteli a felhasználók bejelentkezését (a névtelen felhasználók megtagadásával), majd csak a Rendszergazdák szerepkörben lévő felhasználók számára engedélyezi a hozzáférést.
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
Ha az authorization alkalmazás Web.config fájljának szakaszát használja az engedélyezés szerepkörök alapján történő megadásához, az alkalmazás felhasználóinak hitelesített felhasználói identitást kell megadniuk. A felhasználók hitelesítését Windows vagy Űrlapok hitelesítésével végezheti el. Névtelen felhasználók nem rendelhetők hozzá szerepkörhöz. A szerepkörök a ASP.NET Membership osztályoktól függetlenül vagy azzal együtt is használhatók.
A szerepkör-tagság programozott ellenőrzéséhez használhatja az Roles osztályt vagy a Page.User tulajdonságot a IsUserInRole metódussal, vagy használhatja a Page.User tulajdonságot a IPrincipal.IsInRole metódussal. A szerepkör-tagságot programozott módon ellenőrző mintakódért tekintse meg a jelen témakör Példa szakaszát.
Az Roles osztály lehetővé teszi a szerepkörök létrehozását és törlését, valamint a felhasználók szerepkörökhöz való hozzáadását vagy eltávolítását is.
Note
Ha az alkalmazást az osztály használatára konfigurálta, nem módosíthatja a WindowsTokenRoleProvider szerepköröket vagy a szerepkör-tagságot. A WindowsTokenRoleProvider osztály csak Windows biztonsági csoportokban ellenőrzi a tagságot. Ebben az esetben Windows felhasználói fiókkezelést kell használnia ahelyett, hogy ASP.NET szerepköröket kell használnia a csoportok létrehozásához és törléséhez, valamint a csoporttagság kezeléséhez.
A szerepkör-információkat több adatforrásban is tárolhatja.
A WindowsTokenRoleProvider osztály segítségével Windows csoportok tagsága alapján lekérheti a szerepkör-információkat.
A szerepkör-információkat egy SQL Server-adatbázisban tárolhatja a SqlRoleProvider osztály használatával.
Ha rendelkezik meglévő szerepköradatokkal, vagy a szerepkör-információkat nem Windows, engedélyezési tárból vagy SQL Server származó adatforrásból szeretné tárolni és lekérni, egyéni szerepkör-szolgáltatót úgy valósíthat meg, hogy létrehoz egy olyan osztályt, amely örökli a RoleProvider absztrakt osztályt. További információ: Szerepkör-szolgáltató implementálása.
Ha a felhasználó böngészője elfogadja a cookie-kat, a felhasználó szerepköradatait egy cookie-ban tárolhatja a felhasználó számítógépén. Minden oldalkérésnél ASP.NET beolvassa az adott felhasználó szerepköradatait a cookie-ból. Ez javíthatja az alkalmazás teljesítményét azáltal, hogy csökkenti az adatforrással a szerepkör-információk lekéréséhez szükséges kommunikáció mennyiségét. Ha a felhasználó szerepköradatai túl hosszúak ahhoz, hogy cookie-ban tároljanak, ASP.NET csak a legutóbb használt szerepköradatokat tárolja a cookie-ban, majd szükség szerint további szerepköradatokat keres az adatforrásban. Ha a felhasználó böngészője nem támogatja a cookie-kat, vagy a cookie-k le vannak tiltva, a szerepkör-információk nem lesznek gyorsítótárazva egy cookie-ban.
A cookie-ban gyorsítótárazott szerepkörnevek megbízhatóságát úgy javíthatja, hogy CookieProtectionValue tulajdonságot ad meg ASP.NET szerepkörök konfigurálásakor. Az alapértelmezett CookieProtectionValue érték az All, amely titkosítja a szerepkörneveket a cookie-ban, és ellenőrzi, hogy a cookie tartalma nem módosult-e.
Tulajdonságok
| Name | Description |
|---|---|
| ApplicationName |
Lekéri vagy beállítja az alkalmazás nevét a szerepköradatok tárolásához és lekéréséhez. |
| CacheRolesInCookie |
Egy értéket kap, amely jelzi, hogy az aktuális felhasználó szerepkörei gyorsítótárazva vannak-e egy cookie-ban. |
| CookieName |
Lekéri annak a cookie-nak a nevét, amelyben a szerepkörnevek gyorsítótárazva vannak. |
| CookiePath |
Lekéri a gyorsítótárazott szerepkörnevek cookie elérési útját. |
| CookieProtectionValue |
Olyan értéket kap, amely jelzi, hogy a cookie-kban gyorsítótárazott szerepkörnevek hogyan védve vannak. |
| CookieRequireSSL |
Lekéri azt az értéket, amely jelzi, hogy a szerepkörnevek cookie-jának SSL-et kell-e igényelnie ahhoz, hogy vissza lehessen-e adni a kiszolgálónak. |
| CookieSlidingExpiration |
Azt jelzi, hogy a szerepkörnevek cookie-lejárati dátuma és ideje rendszeres időközönként alaphelyzetbe áll-e. |
| CookieTimeout |
Lekéri a szerepkörök cookie-jának lejárata előtti percek számát. |
| CreatePersistentCookie |
Egy értéket kap, amely jelzi, hogy a szerepkör-nevek cookie munkamenet-alapú vagy állandó-e. |
| Domain |
Lekéri a szerepkörneveket tartalmazó cookie tartományának értékét. |
| Enabled |
Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezve van-e a szerepkör-kezelés az aktuális webalkalmazáshoz. |
| MaxCachedResults |
A felhasználó számára gyorsítótárazandó szerepkörnevek maximális számát adja meg. |
| Provider |
Lekéri az alkalmazás alapértelmezett szerepkör-szolgáltatójának értékét. |
| Providers |
Lekéri a ASP.NET alkalmazás szerepkör-szolgáltatóinak gyűjteményét. |
Metódusok
| Name | Description |
|---|---|
| AddUsersToRole(String[], String) |
Hozzáadja a megadott felhasználókat a megadott szerepkörhöz. |
| AddUsersToRoles(String[], String[]) |
Hozzáadja a megadott felhasználókat a megadott szerepkörökhöz. |
| AddUserToRole(String, String) |
Hozzáadja a megadott felhasználót a megadott szerepkörhöz. |
| AddUserToRoles(String, String[]) |
Hozzáadja a megadott felhasználót a megadott szerepkörökhöz. |
| CreateRole(String) |
Új szerepkört ad hozzá az adatforráshoz. |
| DeleteCookie() |
Törli azt a cookie-t, amelyben a szerepkörnevek gyorsítótárazva vannak. |
| DeleteRole(String, Boolean) |
Eltávolít egy szerepkört az adatforrásból. |
| DeleteRole(String) |
Eltávolít egy szerepkört az adatforrásból. |
| FindUsersInRole(String, String) |
Lekéri a megadott szerepkörben lévő felhasználók listáját, ahol a felhasználónév tartalmazza a megadott felhasználónevet. |
| GetAllRoles() |
Lekéri az alkalmazás összes szerepkörének listáját. |
| GetRolesForUser() |
Lekéri az aktuálisan bejelentkezett felhasználó szerepköreinek listáját. |
| GetRolesForUser(String) |
Lekéri a felhasználók szerepköreinek listáját. |
| GetUsersInRole(String) |
Lekéri a megadott szerepkörben lévő felhasználók listáját. |
| IsUserInRole(String, String) |
Beolvas egy értéket, amely jelzi, hogy a megadott felhasználó szerepel-e a megadott szerepkörben. Az API-t csak egy ASP.NET kérelemszál kontextusában kell meghívni, és ebben a jóváhagyott használati esetben szálbiztos. |
| IsUserInRole(String) |
Beolvas egy értéket, amely jelzi, hogy az aktuálisan bejelentkezett felhasználó szerepel-e a megadott szerepkörben. Az API-t csak egy ASP.NET kérelemszál kontextusában kell meghívni, és ebben a jóváhagyott használati esetben szálbiztos. |
| RemoveUserFromRole(String, String) |
Eltávolítja a megadott felhasználót a megadott szerepkörből. |
| RemoveUserFromRoles(String, String[]) |
Eltávolítja a megadott felhasználót a megadott szerepkörökből. |
| RemoveUsersFromRole(String[], String) |
Eltávolítja a megadott felhasználókat a megadott szerepkörből. |
| RemoveUsersFromRoles(String[], String[]) |
Eltávolítja a megadott felhasználóneveket a megadott szerepkörökből. |
| RoleExists(String) |
Beolvas egy értéket, amely jelzi, hogy a megadott szerepkörnév már létezik-e a szerepkör adatforrásában. |