Roles.Provider Property
Gets the default role provider for the application.
Assembly: System.Web (in System.Web.dll)
Property Value
Type: System.Web.Security.RoleProviderThe default role provider for the application, which is exposed as a class that inherits the RoleProvider abstract class.
| Exception | Condition |
|---|---|
| System.Configuration.Provider.ProviderException | Role management is not enabled. |
The Provider property enables you to directly reference the default role provider for an application. This is commonly used to access custom members of the role provider that are not part of the RoleProvider abstract class.
For example, the WindowsTokenRoleProvider class includes an overload of the IsUserInRole method that enables you to determine whether a user is in a common Windows role by using a WindowsBuiltInRole enumeration value. A reference to the WindowsTokenRoleProvider class for an application can be obtained by using the Provider property and can be cast as a WindowsTokenRoleProvider in order to refer to the IsUserInRole overload.
If multiple role providers are configured for an application, you can access different role providers using the Providers collection.
The following code example casts the default role provider as a WindowsTokenRoleProvider and checks whether the currently logged-on user is in the Administrators role before allowing the user to view roles settings for the application. For an example of a Web.config file that enables role management, see WindowsTokenRoleProvider.
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Dim rolesArray() As String Public Sub Page_Load() Msg.Text = "" Dim provider As WindowsTokenRoleProvider = CType(Roles.Provider, WindowsTokenRoleProvider) If Not provider.IsUserInRole(User.Identity.Name, _ System.Security.Principal.WindowsBuiltInRole.Administrator) Then Msg.Text = "You are not authorized to view user roles." Return End If ' Bind roles to GridView. Try rolesArray = Roles.GetRolesForUser(User.Identity.Name) Catch e As HttpException Msg.Text = "There is no current logged on user. Role membership cannot be verified." Return End Try UserRolesGrid.DataSource = rolesArray UserRolesGrid.DataBind() UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Sample: View User Roles</title> </head> <body> <form runat="server" id="PageForm"> <h3>View User Roles</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br /> <table border="0" cellspacing="4"> <tr> <td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid" AutoGenerateColumns="false" Gridlines="None" CellSpacing="0" > <HeaderStyle BackColor="navy" ForeColor="white" /> <Columns> <asp:TemplateField HeaderText="Roles" > <ItemTemplate> <%# Container.DataItem.ToString() %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView></td> </tr> </table> </form> </body> </html>
Available since 2.0