Roles Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Beheert het gebruikerslidmaatschap in rollen voor autorisatiecontrole in een ASP.NET toepassing. Deze klasse kan niet worden overgenomen.
public ref class Roles abstract sealed
public static class Roles
type Roles = class
Public Class Roles
- Overname
-
Roles
Voorbeelden
In het volgende voorbeeld ziet u het Web.config-bestand voor een toepassing die is geconfigureerd om zowel ASP.NET lidmaatschap als ASP.NET rollen te gebruiken en om de SqlRoleProvider te gebruiken om lidmaatschaps- en rolgegevens op te slaan in een SQL Server-database. Gebruikers worden geverifieerd met formulierverificatie en alleen gebruikers met de rol Administrators hebben toegang tot de toepassing.
<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>
In het volgende codevoorbeeld wordt programmatisch gecontroleerd of de aangemelde gebruiker de rol Administrators heeft voordat de gebruiker de rollen van andere gebruikers kan weergeven.
Opmerkingen
ASP.NET rolbeheer stelt u in staat om autorisatie voor uw toepassing te beheren op basis van groepen gebruikers, ook wel rollen genoemd. Door gebruikers toe te wijzen aan rollen, kunt u de toegang tot verschillende onderdelen of functies van uw webtoepassing beheren op basis van een rol in plaats van, of naast autorisatie, op basis van gebruikersnaam. Een werknemerstoepassing kan bijvoorbeeld rollen hebben, zoals Managers, Werknemers, Directeuren, enzovoort, waarbij voor elke rol verschillende bevoegdheden worden opgegeven.
Gebruikers kunnen tot meer dan één rol behoren. Als uw site bijvoorbeeld een discussieforum is, kunnen sommige gebruikers de rol van zowel leden als moderators hebben. U kunt elke rol definiëren voor verschillende bevoegdheden op de site en een gebruiker die zich in beide rollen bevindt, heeft dan beide sets bevoegdheden.
Als u rolbeheer wilt inschakelen voor uw ASP.NET-toepassing, gebruikt u het element roleManager van de sectie system.web in het Web.config-bestand voor uw toepassing, zoals wordt weergegeven in het volgende voorbeeld.
<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>
U kunt autorisatieregels opgeven in het configuratiebestand voor uw webtoepassing of programmatisch in uw code. In de volgende autorisatiesectie van een Web.config-bestand moeten gebruikers zich aanmelden (door anonieme gebruikers te weigeren) en kunnen alleen gebruikers met de rol Administrators toegang hebben.
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
Als u de sectie in het authorization Web.config-bestand van uw toepassing gebruikt om autorisatie op te geven op basis van rollen, moeten gebruikers van uw toepassing een geverifieerde gebruikersidentiteit opgeven. U kunt gebruikers verifiëren met behulp van Windows- of formulierverificatie. Anonieme gebruikers kunnen niet worden toegewezen aan een rol. Rollen kunnen onafhankelijk van of in combinatie met de ASP.NET Membership klassen worden gebruikt.
Als u het lidmaatschap van rollen programmatisch wilt controleren, kunt u de Roles klasse of eigenschap Page.User gebruiken met de IsUserInRole methode, of u kunt de Page.User eigenschap gebruiken met de IPrincipal.IsInRole methode. Zie de sectie Voorbeeld in dit onderwerp voor voorbeeldcode waarmee programmatisch het rollidmaatschap wordt gecontroleerd.
Met de Roles klasse kunt u ook rollen maken en verwijderen en gebruikers toevoegen aan of verwijderen uit rollen.
Note
Als u uw toepassing hebt geconfigureerd voor het gebruik van de WindowsTokenRoleProvider klasse, kunt u geen rollen of rollidmaatschap wijzigen. De klasse WindowsTokenRoleProvider verifieert alleen het lidmaatschap van Windows beveiligingsgroepen. In dit geval moet u Windows gebruikersaccountbeheer gebruiken in plaats van ASP.NET rollen om groepen te maken en te verwijderen en groepslidmaatschap te beheren.
U kunt rolgegevens opslaan in verschillende gegevensbronnen.
U kunt de klasse WindowsTokenRoleProvider gebruiken om rolgegevens op te halen op basis van lidmaatschap in Windows groepen.
U kunt rolgegevens opslaan in een SQL Server-database met behulp van de klasse SqlRoleProvider.
Als u bestaande rolgegevens hebt of rolgegevens wilt opslaan in een andere gegevensbron dan Windows, autorisatiearchief of SQL Server, kunt u een aangepaste rolprovider implementeren door een klasse te maken die de RoleProvider abstracte klasse over neemt. Zie Een rolprovider implementeren voor meer informatie.
Als de browser van een gebruiker cookies accepteert, kunt u rolgegevens voor die gebruiker opslaan in een cookie op de computer van de gebruiker. Op elke paginaaanvraag leest ASP.NET de rolgegevens voor die gebruiker uit de cookie. Dit kan de prestaties van toepassingen verbeteren door de hoeveelheid communicatie die nodig is met de gegevensbron te verminderen om rolgegevens op te halen. Als de rolgegevens voor een gebruiker te lang zijn om op te slaan in een cookie, ASP.NET alleen de laatst gebruikte rolgegevens in de cookie opslaat en vervolgens aanvullende rolgegevens in de gegevensbron opzoeken, indien nodig. Als de browser van de gebruiker geen cookies ondersteunt of cookies zijn uitgeschakeld, worden rolgegevens niet in de cache opgeslagen in een cookie.
U kunt de betrouwbaarheid van de rolnamen in de cache in een cookie verbeteren door een eigenschap CookieProtectionValue op te geven wanneer u ASP.NET rollen configureert. De standaardwaarde CookieProtectionValue is All, waarmee rolnamen in de cookie worden versleuteld en wordt gecontroleerd of de inhoud van de cookie niet is gewijzigd.
Eigenschappen
| Name | Description |
|---|---|
| ApplicationName |
Hiermee wordt de naam van de toepassing opgehaald of ingesteld voor het opslaan en ophalen van rolgegevens. |
| CacheRolesInCookie |
Hiermee wordt een waarde opgehaald die aangeeft of de rollen van de huidige gebruiker in de cache worden opgeslagen in een cookie. |
| CookieName |
Hiermee haalt u de naam op van de cookie waarin rolnamen in de cache worden opgeslagen. |
| CookiePath |
Hiermee haalt u het pad op voor de cookie voor rolnamen in de cache. |
| CookieProtectionValue |
Hiermee wordt een waarde opgehaald die aangeeft hoe rolnamen in de cache van een cookie worden beveiligd. |
| CookieRequireSSL |
Hiermee wordt een waarde opgehaald die aangeeft of de cookie voor rolnamen SSL vereist om terug te keren naar de server. |
| CookieSlidingExpiration |
Hiermee wordt aangegeven of de verloopdatum en -tijd van de rolnamen regelmatig opnieuw worden ingesteld. |
| CookieTimeout |
Hiermee haalt u het aantal minuten op voordat de cookie voor rollen verloopt. |
| CreatePersistentCookie |
Hiermee wordt een waarde opgehaald die aangeeft of de cookie voor rolnamen sessiegebaseert of permanent is. |
| Domain |
Hiermee haalt u de waarde op van het domein van de cookie voor rollennamen. |
| Enabled |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of rolbeheer is ingeschakeld voor de huidige webtoepassing. |
| MaxCachedResults |
Hiermee wordt het maximum aantal rolnamen opgehaald dat in de cache moet worden opgeslagen voor een gebruiker. |
| Provider |
Hiermee haalt u de standaardrolprovider voor de toepassing op. |
| Providers |
Hiermee haalt u een verzameling van de rolproviders voor de ASP.NET-toepassing op. |
Methoden
| Name | Description |
|---|---|
| AddUsersToRole(String[], String) |
Voegt de opgegeven gebruikers toe aan de opgegeven rol. |
| AddUsersToRoles(String[], String[]) |
Voegt de opgegeven gebruikers toe aan de opgegeven rollen. |
| AddUserToRole(String, String) |
Hiermee voegt u de opgegeven gebruiker toe aan de opgegeven rol. |
| AddUserToRoles(String, String[]) |
Hiermee voegt u de opgegeven gebruiker toe aan de opgegeven rollen. |
| CreateRole(String) |
Voegt een nieuwe rol toe aan de gegevensbron. |
| DeleteCookie() |
Hiermee verwijdert u de cookie waarin rolnamen in de cache worden opgeslagen. |
| DeleteRole(String, Boolean) |
Hiermee verwijdert u een rol uit de gegevensbron. |
| DeleteRole(String) |
Hiermee verwijdert u een rol uit de gegevensbron. |
| FindUsersInRole(String, String) |
Hiermee haalt u een lijst op met gebruikers in een opgegeven rol waarbij de gebruikersnaam de opgegeven gebruikersnaam bevat die overeenkomt met de opgegeven gebruikersnaam. |
| GetAllRoles() |
Hiermee haalt u een lijst op met alle rollen voor de toepassing. |
| GetRolesForUser() |
Hiermee haalt u een lijst op met de rollen waarin de momenteel aangemelde gebruiker zich bevindt. |
| GetRolesForUser(String) |
Hiermee haalt u een lijst op met de rollen waarin een gebruiker zich bevindt. |
| GetUsersInRole(String) |
Hiermee haalt u een lijst op met gebruikers in de opgegeven rol. |
| IsUserInRole(String, String) |
Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker de opgegeven rol heeft. De API is alleen bedoeld om te worden aangeroepen binnen de context van een ASP.NET aanvraagthread, en in die opgegeven use case is het thread-safe. |
| IsUserInRole(String) |
Hiermee wordt een waarde opgehaald die aangeeft of de momenteel aangemelde gebruiker de opgegeven rol heeft. De API is alleen bedoeld om te worden aangeroepen binnen de context van een ASP.NET aanvraagthread, en in die opgegeven use case is het thread-safe. |
| RemoveUserFromRole(String, String) |
Hiermee verwijdert u de opgegeven gebruiker uit de opgegeven rol. |
| RemoveUserFromRoles(String, String[]) |
Hiermee verwijdert u de opgegeven gebruiker uit de opgegeven rollen. |
| RemoveUsersFromRole(String[], String) |
Hiermee verwijdert u de opgegeven gebruikers uit de opgegeven rol. |
| RemoveUsersFromRoles(String[], String[]) |
Hiermee verwijdert u de opgegeven gebruikersnamen uit de opgegeven rollen. |
| RoleExists(String) |
Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven rolnaam al bestaat in de gegevensbron van de rol. |