Esta documentación está archivada y no tiene mantenimiento.

Tutorial: Administrar los usuarios de sitios Web con funciones

Muchas aplicaciones ASP.NET requieren suscripción; es decir, autenticación de los usuarios para que tengan acceso a los recursos restringidos, como las páginas exclusivas para miembros. Si la aplicación admite un gran número de usuarios o si es probable que la lista de usuarios cambie con el tiempo, considere la posibilidad de establecer funciones para administrar el acceso de los usuarios. Una función es el nombre de un grupo, como administradores, vendedores o miembros. Después de establecer las funciones, puede asignar usuarios a cada función. A continuación, puede conceder permisos a las funciones, de manera que cada usuario de una función hereda los permisos asignados. Las funciones son por tanto una manera eficaz de administrar los permisos de los grupos de usuarios.

Durante este tutorial aprenderá a:

  • Establecer funciones para una aplicación.

  • Asignar usuarios a las funciones.

  • Crear reglas (permisos) que concedan o denieguen selectivamente el acceso a las páginas según las distintas reglas.

  • Determinar mediante programación si un usuario pertenece a una función concreta y qué funciones tiene asignadas el usuario actual.

Para poder completar este tutorial, necesitará:

  • Visual Studio.

  • .NET Framework.

  • IIS instalado localmente en el equipo.

  • SQL Server Express instalado localmente en el equipo.

  • Una manera de identificar a los distintos usuarios.

    NoteNota

    En las aplicaciones operativas, puede identificar a los usuarios de distintas formas, incluida su cuenta de usuario de Windows. Sin embargo, en este tutorial, los usuarios se identificarán a sí mismos iniciando sesión en su sitio. Por tanto, este tutorial requiere que tenga un sitio configurado para utilizar la suscripción de ASP.NET. Si ya tiene un sitio configurado con la suscripción, podrá utilizarlo como punto de partida en este tutorial.

Antes de comenzar a trabajar con las funciones de ASP.NET, debe haber un sitio Web disponible y es preciso configurar el sitio para que esté habilitada la suscripción y configurar las funciones de los usuarios. Si ha completado el tema Tutorial: Crear un sitio Web con suscripción e inicio de sesión de usuarios (Visual Studio), puede utilizar el sitio Web que configuró en ese tutorial.

Si aún no dispone de un sitio Web, utilice el procedimiento siguiente para crear uno. De lo contrario, vaya a la sección siguiente "Crear carpetas para las páginas exclusivas para miembros".

Para crear un sitio Web local de IIS

  1. Abra Visual Studio.

  2. En el menú Archivo, haga clic en Nuevo sitio Web.

    Aparece el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, seleccione Sitio Web ASP.NET.

  4. En el cuadro de lista Ubicación, seleccione Sistema de archivos.

  5. Haga clic en Examinar y, a continuación, seleccione un directorio para la aplicación, como C:\RolesWebSite.

  6. En el cuadro Lenguajes, haga clic en el lenguaje de programación que desee utilizar.

    El lenguaje de programación que elija será el lenguaje predeterminado de su sitio Web; sin embargo, también puede establecer el lenguaje de programación de cada página de forma individual.

  7. Haga clic en Aceptar en el cuadro de diálogo Nuevo sitio Web.

    Visual Web Developer crea el sitio Web y una nueva página denominada Default.aspx.

Crear carpetas para las páginas exclusivas para miembros

Para trabajar con las funciones necesita crear dos carpetas, MemberPages y GuestPages, en las que puede conservar las páginas que tengan acceso restringido.

NoteNota

Si vuelve a utilizar el sitio Web del tutorial de suscripción, es probable que ya tenga esta carpeta y podrá omitir el paso 1 del siguiente procedimiento.

Para crear las carpetas para el acceso restringido

  1. En el Explorador de soluciones, haga clic con el botón secundario en la raíz del sitio Web, haga clic en Nueva carpeta y, a continuación, asigne el nombre MemberPages a la carpeta.

    Esta carpeta contendrá una página a la que pueden obtener acceso sólo algunos de los usuarios.

  2. Haga clic con el botón secundario en la raíz del sitio Web, haga clic en Nueva carpeta y, a continuación, asigne el nombre GuestPages a la carpeta.

    Esta carpeta contendrá una página accesible para cualquier usuario registrado (pero no para los usuarios anónimos).

Configurar el sitio Web para la suscripción y las funciones

Después de crear el sitio Web básico, puede configurarlo para utilizar suscripción y funciones.

Para configurar el sitio Web para la suscripción y las funciones

  1. En el menú Sitio Web, haga clic en Configuración de ASP.NET.

  2. Seleccione la ficha Seguridad, haga clic en el vínculo a Usar el asistente de configuración de seguridad para definir la seguridad paso a paso y, a continuación, haga clic en Siguiente.

  3. Continúe en el paso 2 del asistente y seleccione la opción Desde Internet.

    El asistente muestra una página en la que puede seleccionar el método de autenticación que utilizará el sitio Web.

    Esta opción especifica que la aplicación utilizará la autenticación mediante formularios, en la que los usuarios inician sesión en la aplicación usando una página de inicio de sesión que se creará más adelante en este tutorial.

  4. Haga clic en Siguiente.

    El asistente muestra un mensaje que indica que la información del usuario se almacenará utilizando Configuración de proveedores avanzada. La aplicación utilizará el proveedor predeterminado, que almacena la información de suscripción en un archivo de la base de datos de SQL Server Express ubicado en la carpeta App_Data del sitio Web.

  5. Haga de nuevo clic en Siguiente.

  6. En Paso 4: Definir funciones, active la casilla Habilite las funciones para este sitio Web y, a continuación, haga clic en Siguiente.

  7. Cuando se le pida, cree dos funciones, members y guests y, a continuación, haga clic en Siguiente.

  8. En Paso 5: Agregar nuevos usuarios, cree tres usuarios denominados member1, guest1 y memberGuest.

    Puede asignar cualquier contraseña segura que desee, pero asegúrese de recordarla. Las contraseñas deben tener al menos 7 caracteres y al menos uno de los caracteres debe ser no alfanumérico. En la dirección de correo electrónico, utilice la suya. (No enviará mensajes de correo electrónico en este tutorial.)

    NoteNota

    No cierre todavía la herramienta Administración de sitios Web.

El sitio Web que va a crear permitirá a los usuarios obtener acceso a distintas páginas según sus funciones. Por consiguiente, debe crear algunas reglas de acceso que determinarán qué funciones tienen acceso a qué carpetas.

Para preparar las reglas de acceso para las carpetas del sitio

  1. En el asistente de seguridad de la herramienta Administración de sitios Web, haga clic en Siguiente.

    Paso 6: Agregar nuevas reglas de acceso muestra una página en la que se pueden crear reglas que determinan qué funciones (o usuarios) pueden tener acceso a las páginas del sitio Web.

  2. En Seleccionar un directorio para esta regla, expanda el nodo raíz y, a continuación, haga clic en GuestPages.

  3. En La regla se aplica a, seleccione Usuarios anónimos.

  4. En Permiso, seleccione Denegar.

    La regla que está creando deniega el acceso a los usuarios anónimos; es decir, a los usuarios que no se han registrado.

  5. Haga clic en Agregar esta regla.

    La nueva regla se muestra en la cuadrícula situada en la parte inferior de la página. Cuando los usuarios solicitan una página del directorio GuestPages, las reglas se comprueban por orden, de arriba abajo, para determinar si el usuario está autorizado para tener acceso a la página. Si el usuario no ha iniciado sesión, no se mostrarán las páginas de esta carpeta.

  6. En Seleccionar un directorio para esta regla, haga clic en MemberPages.

  7. En La regla se aplica a, seleccione Función y, a continuación, en la lista desplegable, haga clic en members.

  8. En Permiso, seleccione Permitir.

    La regla que está creando concede permiso de acceso a la carpeta MemberPages a cualquier usuario con la función members.

  9. Haga clic en Agregar esta regla.

  10. En Seleccionar un directorio para esta regla, haga clic en MemberPages.

  11. En La regla se aplica a, seleccione Todos los usuarios.

  12. En Permiso, seleccione Denegar.

  13. Haga clic en Agregar esta regla.

    La segunda regla para la carpeta MemberPages garantiza que nadie excepto los usuarios de la función members puede tener acceso a la carpeta. Las reglas se procesan por orden, de arriba abajo, tal y como se ven en la cuadrícula.

    La primera regla (Permitir) concede acceso a los usuarios con la función denominada members. La segunda regla (Denegar) deniega el acceso a todos los demás usuarios. Puede crear tantas reglas Permitir o Denegar como necesite para su aplicación. Cuando los usuarios solicitan una página del directorio MemberPages, las reglas se aplican por orden, de arriba abajo, para determinar si el usuario está autorizado para tener acceso a la página.

  14. Haga clic en Finalizar para volver a la ficha Seguridad.

    NoteNota

    No cierre todavía la herramienta Administración de sitios Web.

Asignar usuarios a las funciones

Debe realizar un último paso de configuración: asignar los usuarios que ha creado a las funciones.

Para asignar usuarios a las funciones

  1. En la ficha Seguridad de la herramienta Administración de sitios Web, en Usuarios, haga clic en Administrar usuarios.

  2. En la fila de guest1, haga clic en Editar funciones.

    El cuadro Funciones se rellena con una lista de las funciones disponibles.

  3. Active la casilla de verificación guests para asignar el usuario guest1 a la función guests.

  4. En la fila de member1, haga clic en Editar funciones y asigne el usuario member1 a la función members.

  5. Con la misma técnica, asigne el usuario memberGuest a las funciones guests y members.

  6. Cierre la herramienta Administración de sitios Web y, a continuación, siga este procedimiento:

    1. En el Explorador de soluciones, haga clic en el icono de actualización.

    2. En el menú Sitio Web, haga clic en Configuración de ASP.NET para reiniciar la herramienta Administración de sitios Web.

      De este modo, se asegura que se cierra la conexión a la base de datos de suscripciones utilizada por la herramienta Administración de sitios Web.

    3. Cierre de nuevo la herramienta Administración de sitios Web.

Para comprobar la configuración de suscripción y funciones, debe crear un medio de registro de usuarios que le permita identificarlos. También debe crear algunas páginas Web que le permitirán probar las reglas de acceso que ha creado.

Para crear una página predeterminada para todos los usuarios

  1. Cambie a Visual Studio.

  2. Abra la página Default.aspx o cambie a ella y, a continuación, cambie a la vista Diseño.

    Si no tiene una página Default.aspx, agregue una a la raíz del sitio Web.

    NoteNota

    Asegúrese de llamar a la página Default.aspx; este nombre se utiliza más adelante en el tutorial.

  3. Agregue un encabezado con texto, como Welcome!

  4. En el Cuadro de herramientas, desde el grupo Inicio de sesión, arrastre un control LoginStatus hasta la página.

    Al hacer clic en él, el control LoginStatus lleva a los usuarios a la página Login.aspx si aún no han iniciado sesión.

  5. Desde el grupo Inicio de sesión del Cuadro de herramientas, arrastre un control LoginName a la página. Establezca la propiedad FormatString como "Hello {0}.".

    El control LoginName mostrará el nombre del usuario si éste ha iniciado sesión.

  6. En el Cuadro de herramientas, arrastre un control HyperLink desde el grupo Estándar hasta la página. En el panel Propiedades del control HyperLink, establezca la propiedad Text en Huéspedes y miembros y la propiedad NavigateUrl en ~/GuestPages/Guests.aspx.

    NoteNota

    Creará la página Guests.aspx más adelante en este tutorial.

  7. En el Cuadro de herramientas, arrastre otro control HyperLink desde el grupo Estándar hasta la página. En el panel Propiedades del control HyperLink, establezca la propiedad Text en Miembros y la propiedad NavigateUrl en ~/MemberPages/Members.aspx.

    NoteNota

    Creará la página Members.aspx más adelante en este tutorial.

Ahora tiene una página principal que está disponible para todos los usuarios. Desde ella, los usuarios pueden usar vínculos a páginas adicionales, algunas de las cuales estarán restringidas. El paso siguiente es crear una página de inicio de sesión simple.

Para crear una página de inicio de sesión

  1. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta raíz del sitio Web y seleccione Agregar nuevo elemento. Agregue un formulario Web Forms denominado Login.aspx a su sitio Web.

  2. En la página Login.aspx, cambie a la vista Diseño.

  3. En el Cuadro de herramientas, desde el grupo Inicio de sesión, arrastre un control Login hasta la página.

  4. En el panel Propiedades del control Login, establezca la propiedad DestinationPageUrl en ~/Default.aspx.

Finalmente, debe crear algunas páginas que representan el contenido restringido de su sitio.

Para crear las páginas restringidas

  1. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta GuestPages, haga clic en Agregar nuevo elemento y agregue un formulario Web Forms denominado Guests.aspx en esta carpeta.

  2. Cambie a la vista Diseño y agregue un encabezado a la página Guests.aspx, como Welcome to the Guests page!

  3. En el Cuadro de herramientas, arrastre un control HyperLink desde el grupo Estándar hasta la página. En el panel Propiedades del control HyperLink, establezca la propiedad Text en Inicio y la propiedad NavigateUrl en ~/Default.aspx.

  4. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta MemberPages, seleccione Agregar nuevo elemento y agregue un formulario Web Forms denominado Members.aspx en esta carpeta.

  5. Cambie a la vista Diseño y agregue a la página Members.aspx un encabezado como Welcome to the Members page!

  6. En el Cuadro de herramientas, arrastre un control HyperLink desde el grupo Estándar hasta la página.

  7. En el panel Propiedades del control HyperLink, establezca la propiedad Text en Inicio y la propiedad NavigateUrl en ~/Default.aspx.

    No tiene que agregar ningún código a las páginas para restringir el acceso a ellas. Están restringidas porque residen en carpetas protegidas con reglas de acceso.

Ahora, el sitio está listo para probarlo.

Para probar las funciones

  1. Cambie a la página Default.aspx y, a continuación, presione CTRL+F5 para ejecutarla.

  2. Haga clic en Huéspedes y miembros.

    Se le redirige a la página Login.aspx porque está intentando tener acceso a una página que no admite usuarios anónimos.

  3. Inicie sesión como guest1, que está en la función guests.

    Una vez iniciada la sesión, se le redirige a la página Guests.aspx.

    Haga clic en Inicio para regresar a la página Default.aspx.

    La página Default.aspx muestra el texto Hello, guest1 en el lugar del control LoginName. Además, el control LoginStatus ha cambiado el texto de Iniciar sesión a Cerrar sesión, porque ahora ha iniciado sesión como guest1.

  4. Haga clic en Huéspedes y miembros.

    Esta vez, va directamente a la pagina Guests.aspx porque ya ha iniciado sesión como usuario con la función guests.

  5. Haga clic en Inicio para regresar a la página Default.aspx.

  6. Haga clic en Miembros.

    Se le redirige a la página Login.aspx porque guest1 no tiene los permisos necesarios para la página Members.aspx.

  7. Inicie sesión como member1 o como memberGuest.

    Se le redirige a la página Members.aspx porque ha iniciado sesión como usuario de la función members.

  8. Haga clic en Inicio para regresar a la página Default.aspx.

    La página refleja ahora su nuevo nombre de inicio de sesión.

Este tutorial muestra la funcionalidad básica de la administración de funciones de ASP.NET. Puede probar el funcionamiento de otras características de administración de funciones. Por ejemplo, podría:

Mostrar: