Roles Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Spravuje členství uživatelů v rolích pro kontrolu autorizace v aplikaci ASP.NET. Tato třída se nemůže dědit.
public ref class Roles abstract sealed
public static class Roles
type Roles = class
Public Class Roles
- Dědičnost
-
Roles
Příklady
Následující příklad ukazuje soubor Web.config pro aplikaci nakonfigurovanou tak, aby používala ASP.NET členství i ASP.NET role a k ukládání SqlRoleProvider informací o členství a rolích v databázi SQL Serveru. Uživatelé jsou ověřeni pomocí ověřování pomocí formulářů a přístup k aplikaci mají pouze uživatelé v roli Správci.
<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>
Následující příklad kódu programově zkontroluje, jestli je přihlášený uživatel v roli Administrators, než uživateli povolí zobrazit role jiných uživatelů.
Poznámky
ASP.NET správa rolí umožňuje spravovat autorizaci pro vaši aplikaci na základě skupin uživatelů označovaných jako role. Přiřazením uživatelů k rolím můžete řídit přístup k různým částem nebo funkcím webové aplikace na základě role namísto zadávání autorizace na základě uživatelského jména. Například aplikace pro zaměstnance může mít role, jako jsou manažeři, zaměstnanci, ředitelé atd., kde jsou pro každou roli zadaná různá oprávnění.
Uživatelé můžou patřit do více než jedné role. Pokud je váš web například diskusním fórem, můžou být někteří uživatelé v roli členů i moderátorů. Každou roli můžete definovat tak, aby měla na webu různá oprávnění, a uživatel, který je v obou rolích, by pak měl obě sady oprávnění.
Pokud chcete povolit správu rolí pro aplikaci ASP.NET, použijte element system.web
roleManager oddílu v souboru Web.config pro vaši aplikaci, jak je znázorněno v následujícím příkladu.
<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>
Autorizační pravidla můžete zadat v konfiguračním souboru webové aplikace nebo programově v kódu. Například následující oddíl autorizace ze souboru Web.config vyžaduje, aby se uživatelé přihlásili (tím, že odepře anonymní uživatele) a pak povolí přístup jenom uživatelům s rolí Správci.
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
Pokud použijete authorization
oddíl v souboru Web.config vaší aplikace k určení autorizace na základě rolí, musí uživatelé vaší aplikace zadat ověřenou identitu uživatele. Uživatele můžete ověřovat buď pomocí ověřování Windows, nebo pomocí modelu Forms. Anonymní uživatele nelze přiřadit k roli. Role lze používat nezávisle na třídách ASP.NET nebo ve spojení s třídami.Membership
Pokud chcete ověřit členství v rolích programově, můžete použít Roles třídu nebo Page.User vlastnost s metodou IsUserInRole , nebo můžete použít Page.User vlastnost s metodou IPrincipal.IsInRole . Ukázkový kód, který programově kontroluje členství v rolích, najdete v části Příklad v tomto tématu.
Třída Roles také umožňuje vytvářet a odstraňovat role a přidávat uživatele do rolí nebo je z rolí odebírat.
Poznámka
Pokud jste aplikaci nakonfigurovali tak, aby používala WindowsTokenRoleProvider třídu, nemůžete upravovat role ani členství v rolích. Třída WindowsTokenRoleProvider ověřuje členství pouze ve skupinách zabezpečení Windows. V takovém případě musíte k vytváření a odstraňování skupin a správě členství ve skupinách používat správu uživatelských účtů systému Windows místo ASP.NET rolí.
Informace o rolích můžete ukládat do několika zdrojů dat.
Třídu můžete použít WindowsTokenRoleProvider k načtení informací o rolích na základě členství ve skupinách Windows.
Informace o rolích můžete ukládat do databáze SQL Serveru pomocí SqlRoleProvider třídy .
Pokud máte existující informace o rolích nebo chcete informace o rolích ukládat a načítat je z jiného zdroje dat, než je Windows, úložiště autorizací nebo SQL Server, můžete implementovat vlastního zprostředkovatele rolí vytvořením třídy, která dědí RoleProvider abstraktní třídu. Další informace najdete v tématu Implementace zprostředkovatele role.
Pokud prohlížeč uživatele přijímá soubory cookie, můžete informace o rolích tohoto uživatele uložit do souboru cookie na počítači uživatele. Na každé stránce ASP.NET přečte informace o roli pro daného uživatele ze souboru cookie. To může zlepšit výkon aplikace tím, že snížíte množství komunikace potřebné ke zdroji dat pro načtení informací o rolích. Pokud jsou informace o roli uživatele příliš dlouhé na uložení do souboru cookie, ASP.NET do souboru cookie uložit pouze informace o naposledy použitých rolích a pak podle potřeby vyhledat další informace o rolích ve zdroji dat. Pokud prohlížeč uživatele soubory cookie nepodporuje nebo jsou zakázané, informace o rolích se v souboru cookie neukládají do mezipaměti.
Spolehlivost názvů rolí uložených v mezipaměti v souboru cookie můžete zvýšit zadáním CookieProtectionValue vlastnosti při konfiguraci ASP.NET rolí. Výchozí hodnota CookieProtectionValue je All
, která šifruje názvy rolí v souboru cookie a ověřuje, že obsah souboru cookie nebyl změněn.
Vlastnosti
ApplicationName |
Získá nebo nastaví název aplikace pro ukládání a načítání informací o roli pro. |
CacheRolesInCookie |
Získá hodnotu označující, zda jsou role aktuálního uživatele uloženy v mezipaměti v souboru cookie. |
CookieName |
Získá název souboru cookie, ve kterém jsou názvy rolí uloženy v mezipaměti. |
CookiePath |
Získá cestu pro soubor cookie názvů rolí uložených v mezipaměti. |
CookieProtectionValue |
Získá hodnotu, která označuje, jak jsou chráněny názvy rolí uložených v mezipaměti v souboru cookie. |
CookieRequireSSL |
Získá hodnotu určující, zda názvy rolí soubor cookie vyžaduje SSL, aby se vrátil na server. |
CookieSlidingExpiration |
Určuje, jestli se datum a čas vypršení platnosti souborů cookie pro názvy rolí bude pravidelně resetovat. |
CookieTimeout |
Získá počet minut před vypršením platnosti souboru cookie rolí. |
CreatePersistentCookie |
Získá hodnotu označující, zda je soubor cookie názvů rolí založený na relaci nebo trvalý. |
Domain |
Získá hodnotu domény souboru cookie názvů rolí. |
Enabled |
Získá nebo nastaví hodnotu označující, zda je povolena správa rolí pro aktuální webovou aplikaci. |
MaxCachedResults |
Získá maximální počet názvů rolí, které se mají uložit do mezipaměti pro uživatele. |
Provider |
Získá výchozího zprostředkovatele role pro aplikaci. |
Providers |
Získá kolekci zprostředkovatelů rolí pro aplikaci ASP.NET. |
Metody
AddUsersToRole(String[], String) |
Přidá zadané uživatele do zadané role. |
AddUsersToRoles(String[], String[]) |
Přidá zadané uživatele k zadaným rolím. |
AddUserToRole(String, String) |
Přidá zadaného uživatele do zadané role. |
AddUserToRoles(String, String[]) |
Přidá zadaného uživatele k zadaným rolím. |
CreateRole(String) |
Přidá do zdroje dat novou roli. |
DeleteCookie() |
Odstraní soubor cookie, ve kterém jsou názvy rolí uloženy v mezipaměti. |
DeleteRole(String) |
Odebere roli ze zdroje dat. |
DeleteRole(String, Boolean) |
Odebere roli ze zdroje dat. |
FindUsersInRole(String, String) |
Získá seznam uživatelů v zadané roli, kde uživatelské jméno obsahuje zadané uživatelské jméno, které se má shodovat. |
GetAllRoles() |
Získá seznam všech rolí pro aplikaci. |
GetRolesForUser() |
Získá seznam rolí, ve které je aktuálně přihlášený uživatel. |
GetRolesForUser(String) |
Získá seznam rolí, ve které je uživatel. |
GetUsersInRole(String) |
Získá seznam uživatelů v zadané roli. |
IsUserInRole(String) |
Získá hodnotu označující, zda je aktuálně přihlášený uživatel v zadané roli. Rozhraní API se má volat pouze v kontextu vlákna požadavku ASP.NET a v tomto schváleném případě použití je bezpečné pro přístup z více vláken. |
IsUserInRole(String, String) |
Získá hodnotu označující, zda je zadaný uživatel v zadané roli. Rozhraní API se má volat pouze v kontextu vlákna požadavku ASP.NET a v tomto schváleném případě použití je bezpečné pro přístup z více vláken. |
RemoveUserFromRole(String, String) |
Odebere zadaného uživatele ze zadané role. |
RemoveUserFromRoles(String, String[]) |
Odebere zadaného uživatele ze zadaných rolí. |
RemoveUsersFromRole(String[], String) |
Odebere zadané uživatele ze zadané role. |
RemoveUsersFromRoles(String[], String[]) |
Odebere zadaná uživatelská jména ze zadaných rolí. |
RoleExists(String) |
Získá hodnotu označující, zda zadaný název role již existuje ve zdroji dat role. |