Roles.Provider Propiedad

Definición

Obtiene el proveedor de roles predeterminado para la aplicación.Gets the default role provider for the application.

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

Valor de propiedad

El proveedor de roles predeterminado de la aplicación, que se expone como una clase que hereda de la clase abstracta RoleProvider.The default role provider for the application, which is exposed as a class that inherits the RoleProvider abstract class.

Excepciones

No está habilitada la administración de roles.Role management is not enabled.

Ejemplos

En el siguiente ejemplo de código se convierte el proveedor de roles WindowsTokenRoleProvider predeterminado como y se comprueba si el usuario que ha iniciado sesión actualmente tiene el rol administradores antes de permitir al usuario ver la configuración de roles de la aplicación.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. Para obtener un ejemplo de un archivo Web. config que habilita la administración de WindowsTokenRoleProviderroles, vea.For an example of a Web.config file that enables role management, see WindowsTokenRoleProvider.

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

Comentarios

La Provider propiedad le permite hacer referencia directamente al proveedor de roles predeterminado de una aplicación.The Provider property enables you to directly reference the default role provider for an application. Esto se usa normalmente para tener acceso a los miembros personalizados del proveedor de roles que no forman RoleProvider parte de la clase abstracta.This is commonly used to access custom members of the role provider that are not part of the RoleProvider abstract class.

Por ejemplo, la WindowsTokenRoleProvider clase incluye una sobrecarga IsUserInRole del método que le permite determinar si un usuario está en un rol de Windows común mediante el uso de WindowsBuiltInRole un valor de enumeración.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. Se puede obtener una WindowsTokenRoleProvider referencia a la clase de una aplicación mediante la Provider propiedad y se puede convertir en un WindowsTokenRoleProvider objeto para hacer referencia a la IsUserInRole sobrecarga.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.

Si hay varios proveedores de roles configurados para una aplicación, puede tener acceso a diferentes Providers proveedores de roles mediante la colección.If multiple role providers are configured for an application, you can access different role providers using the Providers collection.

Se aplica a

Consulte también: