Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Personas que lo han encontrado útil: 1 de 1 - Valorar este tema

Roles (Clase)

Administra la pertenencia del usuario a funciones para el control de autorización en una aplicación ASP.NET. Esta clase no puede heredarse.

System.Object
  System.Web.Security.Roles

Espacio de nombres:  System.Web.Security
Ensamblado:  System.Web (en System.Web.dll)
public static class Roles

El tipo Roles expone los siguientes miembros.

  Nombre Descripción
Propiedad pública Miembro estático ApplicationName Obtiene o establece el nombre de la aplicación para la que se va a almacenar y recuperar información de funciones.
Propiedad pública Miembro estático CacheRolesInCookie Obtiene un valor que indica si las funciones del usuario actual se almacenan provisionalmente en una cookie.
Propiedad pública Miembro estático CookieName Obtiene el nombre de la cookie donde están almacenados los nombres de función.
Propiedad pública Miembro estático CookiePath Obtiene la ruta de acceso de la cookie de nombres de función.
Propiedad pública Miembro estático CookieProtectionValue Obtiene un valor que indica cómo se protegen los nombres de función almacenados provisionalmente en una cookie.
Propiedad pública Miembro estático CookieRequireSSL Obtiene un valor que indica si la cookie de nombres de función requiere SSL para su devolución al servidor.
Propiedad pública Miembro estático CookieSlidingExpiration Indica si la fecha y hora de expiración de la cookie de nombres de función se restablece periódicamente.
Propiedad pública Miembro estático CookieTimeout Obtiene el número de minutos antes de que expire la cookie de funciones.
Propiedad pública Miembro estático CreatePersistentCookie Obtiene un valor que indica si la cookie de nombres de función es para una sesión o persistente.
Propiedad pública Miembro estático Domain Obtiene el valor del dominio de la cookie de nombres de función.
Propiedad pública Miembro estático Enabled Obtiene o establece un valor que indica si está habilitada la administración de funciones para la aplicación Web actual.
Propiedad pública Miembro estático MaxCachedResults Obtiene el número máximo de nombres de función almacenados para un usuario.
Propiedad pública Miembro estático Provider Obtiene el proveedor de funciones predeterminado para la aplicación.
Propiedad pública Miembro estático Providers Obtiene una colección de los proveedores de funciones de la aplicación ASP.NET.
Arriba
  Nombre Descripción
Método público Miembro estático AddUsersToRole Agrega los usuarios especificados a la función especificada.
Método público Miembro estático AddUsersToRoles Agrega los usuarios especificados a las funciones especificadas.
Método público Miembro estático AddUserToRole Agrega el usuario especificado a la función especificada.
Método público Miembro estático AddUserToRoles Agrega el usuario especificado a las funciones especificadas.
Método público Miembro estático CreateRole Agrega una función nueva al origen de datos.
Método público Miembro estático DeleteCookie Elimina la cookie donde se almacenan los nombres de función.
Método público Miembro estático DeleteRole(String) Quita una función del origen de datos.
Método público Miembro estático DeleteRole(String, Boolean) Quita una función del origen de datos.
Método público Miembro estático FindUsersInRole Obtiene una lista de los nombres de usuario de una función especificada que contienen un nombre de usuario buscado.
Método público Miembro estático GetAllRoles Obtiene una lista de todas las funciones de la aplicación.
Método público Miembro estático GetRolesForUser() Obtiene una lista de las funciones en las que está incluido el usuario de la sesión actual.
Método público Miembro estático GetRolesForUser(String) Obtiene una lista de las funciones en que está incluido un usuario.
Método público Miembro estático GetUsersInRole Obtiene una lista de usuarios incluidos en la función especificada.
Método público Miembro estático IsUserInRole(String) Obtiene un valor que indica si el usuario que inició la sesión actual está incluido en la función especificada.
Método público Miembro estático IsUserInRole(String, String) Obtiene un valor que indica si el usuario especificado está incluido en la función especificada.
Método público Miembro estático RemoveUserFromRole Quita el usuario especificado de la función especificada.
Método público Miembro estático RemoveUserFromRoles Quita el usuario especificado de las funciones especificadas.
Método público Miembro estático RemoveUsersFromRole Quita los usuarios especificados de la función especificada.
Método público Miembro estático RemoveUsersFromRoles Quita los nombres de usuario especificados de las funciones especificadas.
Método público Miembro estático RoleExists Obtiene un valor que indica si el nombre de función especificado ya existe en el origen de datos de la función.
Arriba

La administración de funciones de ASP.NET le permite administrar la autorización para su aplicación basándose en grupos de usuarios, que se denominan funciones. La asignación de usuarios a las funciones permite controlar el acceso a partes o características diferentes de su aplicación Web basándose en funciones, en lugar de especificar una autorización basada en nombres de usuario, o además de ellos. Por ejemplo, una aplicación para los empleados podría tener funciones como Administradores, Empleados, Directores, etc., en la que se especifican privilegios diferentes para cada función.

Los usuarios pueden pertenecer a más de una función. Por ejemplo, si su sitio es un foro de discusión, algunos usuarios podrían tener a la vez las funciones Miembros y Moderadores. Puede definir cada función para que tenga privilegios diferentes en el sitio, de modo que un usuario que pertenezca a ambas funciones tendrá los dos conjuntos de privilegios.

Para habilitar la administración de funciones para su aplicación ASP.NET, utilice el elemento roleManager de la sección system.web del archivo Web.config de su aplicación, como se muestra en el ejemplo siguiente.

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

Puede especificar las reglas de autorización en el archivo de configuración de su aplicación Web o mediante programación en el código. Por ejemplo, la sección authorization siguiente de un archivo Web.config exige a los usuarios que inicien sesión (rechaza los usuarios anónimos) y, a continuación, sólo permite el acceso de los usuarios de la función Administradores.

<authorization>
  <deny users="?" />
  <allow roles="Administrators" />
  <deny users="*" />
</authorization>

Si utiliza la sección authorization del archivo Web.config de su aplicación para especificar la autorización basada en funciones, los usuarios de la aplicación deberán proporcionar una identidad de usuario autenticada. Puede autenticar los usuarios utilizando la autenticación de Windows o Windows Forms. No se pueden asignar usuarios anónimos a una función. Las funciones se pueden utilizar con independencia de las clases de ASP.NET Membership o junto con ellas.

Para comprobar la pertenencia a funciones mediante programación, puede utilizar la clase Roles o la propiedad Page.User con el método IsUserInRole o bien puede utilizar la propiedad Page.User con el método IPrincipal.IsInRole. Para ver un código de ejemplo que comprueba la pertenencia a funciones mediante programación, consulte la sección Ejemplo en este tema.

La clase Roles también le permite crear y eliminar funciones y agregar o quitar usuarios de las funciones.

NotaNota

Si ha configurado su aplicación para que utilice la clase WindowsTokenRoleProvider, no puede modificar las funciones ni la pertenencia a funciones. La clase WindowsTokenRoleProvider solo compruebala pertenencia a grupos de seguridad de Windows. En este caso, para crear y eliminar grupos y administrar la pertenencia a grupos, debe utilizar la administración de cuentas de usuario de Windows, en lugar de funciones de ASP.NET.

Puede almacenar información de funciones en varios orígenes de datos.

  • Puede utilizar la clase WindowsTokenRoleProvider para recuperar información de funciones basada en pertenencia a grupos de Windows.

  • La clase SqlRoleProvider le permite almacenar la información de funciones en una base de datos de SQL Server.

  • Si dispone de información de las funciones existentes, o desea almacenar información de funciones y recuperar información de las funciones de un origen de datos distinto de Windows, un almacén de autorización o SQL Server, puede implementar un proveedor de funciones personalizado, creando una clase que herede de la clase abstracta RoleProvider. Para obtener más información, vea Implementar un proveedor de roles.

Si el explorador de un usuario acepta cookies, puede almacenar la información de funciones de ese usuario en una cookie en el equipo del usuario. En cada solicitud de página, ASP.NET lee en la cookie la información de funciones correspondiente al usuario. Esto puede mejorar el rendimiento de la aplicación, al reducir el tráfico de comunicaciones requerido con el origen de datos para recuperar la información de funciones. Si la información de funciones de un usuario es demasiado larga para almacenarla en una cookie, ASP.NET almacena en la cookie solamente la información de funciones usada recientemente y después examina la información de funciones adicional en el origen de datos que se requiera. Si el explorador del usuario no admite cookies o las ha deshabilitado, la información de las funciones no se almacena provisionalmente en una cookie.

Para mejorar la confiabilidad de los nombres de función almacenados provisionalmente en una cookie puede especificar una propiedad CookieProtectionValue cuando configure las funciones de ASP.NET. La propiedad CookieProtectionValue predeterminada es All, que cifra los nombres de la función en la cookie y valida que el contenido de la cookie no haya sido alterado.

El ejemplo siguiente muestra el archivo Web.config para una aplicación configurada para utilizar pertenencia de ASP.NET y funciones de ASP.NET, así como para utilizar SqlRoleProvider para almacenar información de pertenencia y funciones en una base de datos de SQL Server. Los usuarios se autentican con autenticación basada en formularios y sólo los usuarios de la función Administradores tienen permiso de acceso a la aplicación.

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

En el ejemplo de código siguiente se comprueba mediante programación si el usuario que inició la sesión tiene la función Administradores antes de permitirle ver las funciones de otros usuarios.

.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar