Roles.Provider Eigenschap

Definitie

Hiermee haalt u de standaardrolprovider voor de toepassing op.

public:
 static property System::Web::Security::RoleProvider ^ Provider { System::Web::Security::RoleProvider ^ get(); };
public static System.Web.Security.RoleProvider Provider { get; }
static member Provider : System.Web.Security.RoleProvider
Public Shared ReadOnly Property Provider As RoleProvider

Waarde van eigenschap

De standaardrolprovider voor de toepassing, die wordt weergegeven als een klasse die de RoleProvider abstracte klasse over neemt.

Uitzonderingen

Rolbeheer is niet ingeschakeld.

Voorbeelden

Het volgende codevoorbeeld cast de standaardrolprovider als een WindowsTokenRoleProvider en controleert of de momenteel aangemelde gebruiker de rol Administrators heeft voordat de gebruiker rolinstellingen voor de toepassing kan weergeven. Zie voor een voorbeeld van een Web.config-bestand dat rolbeheer WindowsTokenRoleProvidermogelijk maakt.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Security.Principal" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;

public void Page_Load()
{
  Msg.Text = "";

  WindowsPrincipal p = (WindowsPrincipal)System.Threading.Thread.CurrentPrincipal;

  if (!p.IsInRole(WindowsBuiltInRole.Administrator))
  {
    Msg.Text = "You are not authorized to view user roles.";
    return;
  }


  // Bind roles to GridView.

  try
  {
    rolesArray = Roles.GetRolesForUser(User.Identity.Name);
  }
  catch (HttpException e)
  {
    Msg.Text = "There is no current logged on user. Role membership cannot be verified.";
    return;
  }

  UserRolesGrid.DataSource = rolesArray;
  UserRolesGrid.DataBind();

  UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
}

</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>
<%@ 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>

Opmerkingen

Met Provider de eigenschap kunt u rechtstreeks verwijzen naar de standaardrolprovider voor een toepassing. Dit wordt vaak gebruikt voor toegang tot aangepaste leden van de rolprovider die geen deel uitmaken van de RoleProvider abstracte klasse.

De klasse WindowsTokenRoleProvider bevat bijvoorbeeld een overbelasting van de methode IsUserInRole waarmee u kunt bepalen of een gebruiker een gemeenschappelijke Windows rol heeft met behulp van een WindowsBuiltInRole opsommingswaarde. Een verwijzing naar de WindowsTokenRoleProvider klasse voor een toepassing kan worden verkregen met behulp van de Provider eigenschap en kan worden gecast als een WindowsTokenRoleProvider om te verwijzen naar de IsUserInRole overbelasting.

Als er meerdere rolproviders zijn geconfigureerd voor een toepassing, hebt u toegang tot verschillende rolproviders met behulp van de Providers verzameling.

Van toepassing op

Zie ook