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