Exportar (0) Imprimir
Expandir todo
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: 2 de 2 - Valorar este tema

Descripción de la administración de roles

La administración de funciones facilita la administración de la autorización, ya que permite especificar los recursos a los que podrán obtener acceso los usuarios de la aplicación. La administración de funciones permite tratar los grupos de usuarios como si fueran una unidad mediante la asignación de usuarios a funciones, como administrador, ventas, pertenencia, etc. (En Windows, puede crear roles asignando usuarios a grupos, como Administradores, Usuarios avanzados, etc.)

Tras definir las funciones, puede crear reglas de acceso en la aplicación. Por ejemplo, un sitio podría contener un conjunto de páginas que sólo desea mostrar a los miembros. De igual forma, quizás desee mostrar u ocultar una parte de una página en función de si el usuario actual es un administrador. Mediante las funciones, puede establecer estos tipos de reglas sin tener en cuenta a los usuarios individuales de la aplicación. Por ejemplo, no tiene que conceder a miembros individuales del sitio acceso a páginas sólo para miembros. En lugar de ello, puede conceder acceso a la función de miembro y, a continuación, simplemente agregar y quitar los usuarios de esa función cuando éstos se suscriban o prescriba su pertenencia como miembros. Para obtener más información, vea Tutorial: Administrar los usuarios de sitios web con roles.

Los usuarios pueden pertenecer a varios roles. Por ejemplo, si el sitio es un foro de discusión, algunos usuarios podrían pertenecer tanto a la función de miembro como a la función de moderador. Puede definir cada función para que tenga derechos diferentes en el sitio. De este modo, un usuario que pertenezca a ambas funciones tendrá los dos conjuntos de derechos.

Aunque su aplicación tenga pocos usuarios, puede ser útil la creación de funciones. Las funciones proporcionan flexibilidad para cambiar permisos, así como agregar y quitar usuarios sin tener que realizar cambios en todo el sitio. A medida que se van definiendo más reglas de acceso para la aplicación, las funciones son un modo más conveniente de aplicar los cambios a los grupos de usuarios.

La finalidad principal al establecer funciones es proporcionar un modo sencillo de administrar las reglas de acceso de los grupos de usuarios. Cree los usuarios y, a continuación, asígneles funciones (en Windows, a los grupos). Lo normal es crear un conjunto de páginas cuyo acceso desea restringir a algunos usuarios. Para ello, lo más frecuente es aislar estas páginas restringidas en una carpeta. A continuación, puede establecer reglas que concedan y denieguen el acceso a las carpetas restringidas. Por ejemplo, puede configurar el sitio para que los miembros o los administradores tengan acceso a las páginas de la carpeta restringida, y denegar el acceso a los demás usuarios. Si un usuario sin autorización intenta ver una página restringida, el usuario ve un mensaje de error o se le redirige a la página especificada.

Al trabajar con funciones, debe poder identificar a los usuarios de la aplicación para poder determinar si pertenecen a una función específica. Puede configurar la aplicación para establecer la identidad del usuario de dos maneras: mediante la autenticación de Windows y mediante la autenticación de formularios. Si su aplicación se ejecuta en una red de área local (es decir, en una aplicación de intranet basada en dominios), puede identificar a los usuarios mediante el nombre de su cuenta de dominio de Windows. En ese caso, las funciones de un usuario se corresponden con los grupos de Windows a los que pertenece.

En aplicaciones de Internet y en otros escenarios donde no es práctico utilizar cuentas de Windows, puede utilizar la autenticación de formularios para establecer la identidad de los usuarios. Para esta tarea, se suele crea una página en la que los usuarios pueden escribir un nombre de usuario y una contraseña y, a continuación, se validan las credenciales del usuario. Los controles de inicio de sesión de ASP.NET pueden realizar gran parte de esta tarea por usted; o bien, puede crear una página de inicio de sesión y utilizar la clase FormsAuthentication para establecer la identidad de un usuario.

NotaNota

Las funciones no se aplican a los usuarios que no hayan establecido una identidad en la aplicación (usuarios anónimos).

Si utiliza los controles de inicio de sesión o la autenticación de formularios para establecer la identidad del usuario, también puede utilizar la administración de funciones junto con la pertenencia. En este escenario, la pertenencia se utiliza para definir usuarios y contraseñas. Después, puede utilizar la administración de funciones para definir las funciones y asignar miembros a estas funciones. Sin embargo, la administración de funciones no depende de la pertenencia. Siempre que disponga de algún medio para definir la identidad del usuario en la aplicación, podrá utilizar la administración de funciones para la autorización.

Puede obtener acceso a funciones, como un servicio de Windows Communication Framework (WCF), utilizando el servicio de funciones de ASP.NET. El servicio de funciones permite comprobar las funciones de un usuario desde cualquier aplicación que pueda leer o usar un servicio WCF. Por ejemplo, podría comprobar las funciones de un usuario desde una aplicación de formularios Windows Forms, desde una aplicación web o desde una aplicación que no use .NET Framework. Para obtener más información acerca del servicio de aplicación de funciones, consulte Información general sobre el servicio de roles de Windows Communication Foundation.

La administración de funciones no se limita a restringir los derechos a páginas o carpetas; sino que proporciona una API que se puede utilizar para determinar mediante programación si un usuario pertenece a una función. De esta forma, puede escribir código para aprovechar las ventajas de las funciones y realizar todas las tareas de la aplicación basándose no sólo en quién es el usuario sino también en cuáles son las funciones a las que pertenece.

Si establece la identidad del usuario en la aplicación, puede utilizar los métodos de la API de administración de funciones para crear funciones, agregar usuarios a funciones y obtener información sobre los usuarios y las funciones a las que pertenecen. Estos métodos le permiten crear su propia interfaz de administración de funciones.

Si la aplicación utiliza la autenticación de Windows, esta API dispone de menos recursos para la administración de funciones. Por ejemplo, no puede utilizar la administración de funciones para crear funciones nuevas. En su lugar, utilice la administración de usuarios y grupos de Windows para crear cuentas de usuario y grupos, así como para asignar los usuarios a los grupos. La administración de funciones puede leer la información de usuarios y de grupos de Windows para que pueda utilizarla en la autenticación.

Si usa el servicio de funciones de ASP.NET, puede comprobar si un usuario pertenece a una función determinada o recuperar todas las funciones de un usuario. Sin embargo, no es posible administrar funciones a través de la API del servicio de funciones.

Para trabajar con la administración de funciones, debe habilitarla primero y, si lo desea, configurar reglas de acceso que puedan aprovechar las funciones. Puede utilizar, a continuación, las opciones de administración de funciones en tiempo de ejecución para trabajar con funciones.

Configuración de administración de funciones

Para usar la administración de funciones de ASP.NET, habilite esta opción en el archivo Web.config de una aplicación, usando una configuración como la siguiente:

<roleManager 
    enabled="true" 
    cacheRolesInCookie="true" >
</roleManager>

Normalmente, las funciones se utilizan para establecer reglas que permitan o denieguen el acceso a páginas o carpetas. Puede configurar estas reglas de acceso en la sección authorization (autorización) del archivo Web.config. En el ejemplo siguiente se muestra cómo permitir que los usuarios de la función de miembros vean las páginas de la carpeta denominada memberPages, mientras se deniega el acceso al resto de los usuarios:

<configuration>
  <location path="MemberPages">
    <system.web>
      <authorization>
        <allow roles="members" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <!-- other configuration settings here -->
<configuration>

Para obtener más información acerca de cómo configurar reglas de acceso, consulte Autorización de ASP.NET.

También debe crear funciones, como las de administrador o miembro y, a continuación, asignar identificadores de usuario a estas funciones. Si la aplicación utiliza la autenticación de Windows, use la herramienta Administración de equipos de Windows para crear usuarios y grupos.

Si está utilizando la autenticación de formularios, puede configurar los usuarios y las funciones con la herramienta Administración de sitios web de ASP.NET. Si lo prefiere, puede realizar esta tarea mediante programación llamando a distintos métodos del administrador de funciones. En el ejemplo siguiente, se muestra cómo crear la función members:

Roles.CreateRole("members");

En el siguiente ejemplo se muestra cómo se puede agregar individualmente el usuario JoeWorden a la función manager, y cómo se pueden agregar los usuarios JillShrader y ShaiBassli a la función members todos a la vez:

Roles.AddUserToRole("JoeWorden", "manager");
string[] userGroup = new string[2];
userGroup[0] = "JillShrader";
userGroup[1] = "ShaiBassli";
Roles.AddUsersToRole(userGroup, "members");
NotaNota

Las características de administración de funciones no se encuentran disponibles a través del servicio de funciones de ASP.NET. El servicio de funciones sólo puede devolver información sobre un usuario determinado.

Trabajar con funciones en tiempo de ejecución

En tiempo de ejecución, cuando los usuarios visitan el sitio, establecen una identidad ya sea a través de un nombre de cuenta de Windows o iniciando sesión en la aplicación. (Si los usuarios visitan un sitio de Internet sin iniciar sesión, es decir, de forma anónima, no tendrán ninguna identidad de usuario y, por lo tanto, no pertenecerán a ninguna función.) La información sobre el usuario que ha iniciado sesión está disponible en la propiedad User de la aplicación. Cuando se habilitan las funciones, ASP.NET busca las funciones del usuario actual y las agrega al objeto User para que se puedan comprobar. En el ejemplo siguiente se muestra cómo determinar si el usuario actual pertenece a la función de miembro. Si el usuario pertenece a la función, el código muestra un botón para los miembros:

if (User.IsInRole("members"))
{
   buttonMembersArea.Visible = True;
}

ASP.NET también crea una instancia de la clase RolePrincipal y la agrega al contexto de la solicitud actual. Esto permite realizar tareas de administración de funciones mediante programación, como determinar los usuarios que pertenecen a una función específica. . En el ejemplo siguiente se muestra cómo obtener una lista de las funciones del usuario actual que ha iniciado sesión.

string[] userRoles = ((RolePrincipal)User).GetRoles();

Si está utilizando el control LoginView en la aplicación, este control comprobará las funciones del usuario y podrá crear dinámicamente una interfaz de usuario basada en ellas.

Almacenar en memoria caché la información de funciones

Si el explorador de un usuario permite el uso de cookies, ASP.NET puede almacenar, opcionalmente, la información de las funciones en una cookie cifrada del equipo del usuario. En cada solicitud de la página, ASP.NET lee la cookie y rellena la información de las funciones de ese usuario basándose en la información de la cookie. Esta estrategia reduce la necesidad de leer la información de las funciones en la base de datos. Si el explorador del usuario no admite cookies o si éstas estás deshabilitadas, la información sobre las funciones se almacena en la memoria caché solamente el tiempo que dura cada solicitud de página.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.