Tutorial Crear un sitio web con pertenencia e inicio de sesión sesión de usuarios Un requisito típico de los sitios web es permitir que solo algunos usuarios (usuarios autenticados) puedan ver ciertas páginas. En ese caso, es habitual que el sitio web proporcione una forma para que los usuarios inicien sesión y se autentiquen, y se oculte la información a los usuarios anónimos (usuarios que no han iniciado sesión). Nota Si crea una aplicación web en Microsoft Mic rosoft Visual Studio 2010 utilizando una plantilla de proyecto web, la plantilla incluye páginas que implementan funcionalidad de inicio de sesión básica mediante los controles de inicio de sesión y de pertenencia a ASP.NET. Sin embargo, la plantilla no incluye toda la funcionalidad que se describe en este tutorial. Si la plantilla no incluye la funcionalidad que desea, o si prefiere crear el sistema de pertenencia, puede utilizar utiliz ar los mismos controles ASP.NET que hay en la plantilla para crear inicio de sesión y páginas de pertenencia personalizadas. En este tutorial se muestra cómo reunir manualmente estos controles ASP.NET y la pertenencia a ASP.NET para crear una aplicación que autentica a los usuarios y oculta la información a los usuarios anónimos. Para obtener información acerca de cómo se usan las plantillas de sitio web, vea Tutorial: Crear un sitio web ASP.NET con inicio de sesión de usuario básico. básico . Las tareas que se ilustran en este tutorial son las siguientes: Crear un sitio web. Crear una página principal accesible a todos los usuarios. Crear una página de inicio de sesión. Crear una página solo para miembros. Configurar la pertenencia. Agregar a nuevos usuarios (miembros). Permitir a los usuarios el cambio de contraseña. Permitir a los usuarios restablecer una contraseña olvidada.
Crear el sitio web Para crear páginas de inicio de sesión s esión de usuario personalizadas, primero creará un siti o web vacío. En este tutorial se usa un proyecto de sitio web. No obstante, puede utilizar un proyecto de aplicación web si así lo desea. Para obtener inf ormación sobre la diferencia entre estos tipos de proyectos web, vea Proyectos de aplicación web frente a proyectos de sitio web. web . Para crear un sitio web 1. Inicie Visual Studio 2012. 2. En el menú Archivo, haga clic en Nuevo sitio Web. (Si no ve esta opción, haga clic en Nuevo y, a continuación, haga clic en Sitio web). Aparece el cuadro de diálogo Nuevo sitio web.
3. En Plantillas instaladas, haga clic en Visual C# y, a continuación, seleccione Sitio web vacío de ASP.NET . Está seleccionando una plantilla de sitio web vacía porque agregará pertenencia y capacidad de inicio de sesión manualmente, en lugar de usar las características compiladas en las otras plantillas. 4. En el cuadro de lista ubicación Web, seleccione Sistema de archivos y escriba el nombre de la carpeta donde desee conservar las páginas del sitio web, a continuación, haga clic en Aceptar.
Visual Studio crea un proyecto de sitio web vacío que solo tiene un archivo Web.config. Crear la página principal. Primero creará la página principal donde todos los usuarios del sitio web comenzarán.
Para crear una página principal 1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de sitio web y, a continuación, selecci one Agregar nuevo elemento. Se abrirá el cuadro de diálogo Agregar nuevo elemento.
2. Si no ve la ventana del Explorador de soluciones, selecciona el menú Vista y, a continuación, haga clic en Explorador de soluciones. 3. Seleccione Formularios Web Forms, acepte el nombre predeterminado (Default.aspx) para el archivo y, a continuación, haga clic en Agregar.
4. Pase a la Vista de diseño y agregue texto como Página de inicio. 5. En la barra de herramientas Formato, utilice la lista desplegable Formato del bloque para dar formato al texto como Encabezado 1.
Crear la página de inicio de sesión Como parte del sitio web, tiene que establecer la identidad del usuario (autenticar al usuario) para que el sitio web pueda realizar acciones, como mostrar u ocultar información, basándose en quién es el usuario. Para obtener la identidad del usuario, debe disponer de los datos de inicio de sesión del usuario. Por consiguiente, el sitio web debe incluir una página de inicio de sesión.
Para crear una página de inicio de sesión. 1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de sitio web y, a continuación, selecci one Agregar nuevo elemento.
2. Seleccione Formulario Web Forms, cambie el nombre predeterminado por Login.aspx y, a continuación, haga clic en Agregar.
Nota
Para este tutorial, la página se debe denominar Login.aspx. De forma predeterminada, la autenticación de ASP.NET se configura para funcionar con una página que tiene este nombre. (Aunque no lo haga en este tutorial, puede cambiar la página de inicio de sesión predeterminada en el archivo Web.config). 3. En la página Login.aspx, cambie a la vista Diseño. 4. Agregue texto como Página principal a la página y use de nuevo Formato del bloque para dar formato al título como Encabezado 1.
5. Presione Entrar para crear un nuevo párrafo. 6. Arrastre un control Login desde el grupo Inicio de sesión del Cuadro de herramientas hasta el nuevo párrafo. El control Login es el único control que pedirá al usuario las credenciales y las validará. Si desea, puede utilizar el vínculo Formato automático del panel de etiquetas inteligentes para aplicar el formato al control Login.
Mostrar errores de inicio de sesión detallados. El control Login incluye la validación para ayudar a los usuarios a escribir la información correcta. Por ejemplo, si un usuario omite la contraseña, un control validador muestra un asterisco (*) junto al cuadro Contraseña. Para proporcionar más detalles sobre los errores en la página, agregará un control ValidationSummary.
Para mostrar errores de inicio de sesión detallados. 1. Arrastre un control ValidationSummary desde el grupo Validación del Cuadro de herramientas hasta la página Login.aspx. Coloque el ValidationSummary bajo el control Login.
2. En la ventana Propiedades del control ValidationSummary, establezca la propiedad ValidationGroup en Login1, que es el identificador del control Login que agregó anteriormente. (Si la ventana Propiedades no está visible, en el menú Ver haga clic en Ventana Propiedades).
3. Guarde y cierre la página.
Ahora puede probar la página de inicio de sesión. Para probar la página de inicio de sesión 1. En el Explorador de soluciones, haga clic con el botón secundario en la página Login.aspx y seleccione Ver en el explorador.
2. Sin escribir nada en el control de inicio de sesión, haga clic en Iniciar sesión. Un asterisco se muestra junto al cuadro Nombre de usuario y al lado del cuadro Contraseña, porque no especificó nada para estos valores. Además, el control ValidationSummary muestra mensajes de error que proporcionan detalles sobre los errores en la página.
3. Cierre el explorador.
Mostrar información para usuarios que han iniciado sesión. El siguiente paso es modificar la página principal para personalizar su pres entación según si el usuario ha iniciado sesión o no. Los usuarios anónimos verán un mensaje genérico con una invitación a iniciar sesión. Los usuarios que han iniciado sesión verá n un mensaje de bienvenida con el nombre de usuario.
Para personalizar la presentación para los usuarios que inician sesión. 1. Cambie o abra la página Default.aspx y pase a la Vista de diseño. 2. Arrastre un control LoginView desde el grupo Inicio de sesión del Cuadro de herramientas hasta la página. El control LoginView se muestra con su plantilla AnonymousTemplate abierta. Esta plantilla permite definir el contenido que los usuarios verán antes de iniciar sesión.
3. Haga clic en el área de edición del control LoginView para activar la edición.
4. En el área de edición de la plantilla AnonymousTemplate del control LoginView, escriba No ha iniciado sesión. Haga clic en el vínculo Iniciar sesión para hacerlo. En la ilustración siguiente se muestra un área de edición del control LoginView que contiene el texto.
Podría ser más fácil copiar el texto y pegarlo en el área de edición o agregarlo como marcado en la vista Código fuente que registrando el texto en el área de edición directamente. En el siguiente ejemplo se muestra cómo aparece el texto en el marcado.
No ha iniciado sesión. Haga clic en el vínculo Iniciar sesión para hacerlo. 5. En la Vista de diseño, seleccione el control LoginView y en el panel Tareas de LoginView, en la lista Vistas, haga clic en LoggedInTemplate. Si no se muestra el panel Tareas de LoginView, haga clic con el botón secundario del mouse en el encabezado del control LoginView y haga clic en Mostrar etiqueta inteligente. LoggedInTemplate define el contenido que se mostrará a los usuarios que ya han iniciado sesión.
6. Haga clic en el área de edición del control LoginView para activar la edición y, a continuación, escriba Ya ha iniciado sesión. Bienvenido. 7. Coloque el cursor en el área de edición de LoggedInTemplate después de agregar el texto. Desde el grupo de Inicio de sesión del Cuadro de herramientas, haga doble clic en el control LoginName. El control LoginName muestra el nombre del usuario que ha iniciado sesión.
8. Arrastre un control LoginStatus desde el grupo Inicio de sesión del Cuadro de herramientas hasta la página. El control LoginStatus muestra un vínculo de inicio de sesión cuando en el usuario no ha iniciado sesión. Cuando el usuario ha iniciado sesión, el control muestra un hipervínculo para cerrar sesión. 9. Guarde la página.
Crear una página solo para miembros Una tarea típica de muchos sitios web es configurar las páginas para que solo los usuarios que han iniciado sesión puedan verlas. Por consiguiente, la tarea si guiente de este tutorial es crear una carpeta para las páginas solo para miembros, agregarle una página y, a continuación, crear una regla que límite el acceso a las páginas de la carpeta. Para agregar una nueva carpeta al sitio Web
1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nombre del sitio web y haga clic en Nueva carpeta.
2. Asigne el nombre MemberPages a la carpeta.
3. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta MemberPages y, a continuación, haga clic en Agregar nuevo elemento.
4. Agregue una nueva página de formularios Web Forms denominada Members.aspx. 5. Haga clic en Agregar.
Nota
Asegúrese de que crea la página en la carpeta MemberPages.
6. Cambie a la Vista de diseño y agregue texto a la página del administrador, como por ejemplo Esta página es solo para miembros. El texto exacto no importa siempre que pueda reconocerla cuando aparezca en el explorador. Use la lista desplegable Formato del bloque para dar formato al texto de Encabezado 1.
Puede agregar ahora un hipervínculo a la página principal que envía a los usuarios a la página exclusiva para miembros. En una aplicación real, probablemente colocaría el vínculo de la página sólo para miembros en la plantilla de inicio de sesión del control LoginView. De ese modo, los usuarios que visiten el sitio no verán el vínculo hasta que inicien sesión. Sin embargo, para este tutorial, el vínculo estará disponible para todos los usuarios de modo que pueda ver qué efecto tiene intentar ver una página solo para miembros sin primero iniciar sesión.
Para vincular a la página solo para miembros. 1. Abra o cambie a la página Default.aspx. 2. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas hasta la página.
3. En la ventana Propiedades del control HyperLink , haga lo siguiente: a. Establezca la propiedad Text en la página solo para miembros.
b. Establezca la propiedad NavigateUrl en ~ /MemberPages/Members.aspx. Esto señala a la página que creó previamente.
4. Guarde la página.
Ahora puede probar el hipervínculo que acaba de agregar a la página principal. Para probar el vínculo 1. En el Explorador de soluciones, haga clic con el botón secundario en la página Default.aspx y, a continuación, haga clic en Ver en el explorador.
2. Haga clic en Página para miembros. Se muestra la página solo para miembros, porque todavía no se ha protegido. (Es más, de forma predeterminada, ASP.NET utiliza la autenticación de Windows, de modo que considere el inicio de sesión bajo las credenciales de Windows.)
3. Cierre el explorador.
Configurar la pertenencia El paso siguiente es configurar la pertenencia a ASP.NET y configurar los usuarios. Para ello, puede utilizar la herramienta Administración de sitios Web, que proporciona una interfaz parecida a un asistente para establecer opciones de configuración. Al completar la configuración, una base de datos de SQL Server denominada ASPNETDB.MDF se crea en la carpeta App_Data del proyecto. La base de datos contiene información de pertenencia para este sitio web.
Para este tutorial, definirá un usuario único. Para crear un usuario suscrito 1. En el menú Sitio Web, haga clic en Configuración de ASP.NET .
2. Seleccione la pestaña Seguridad, haga clic en el vínculo Utilice el Asistente para la configuración de seguridad para configurar la seguridad paso a paso y, a continuación, haga clic en Siguiente.
El asistente muestra una página en la que puede seleccionar el método de autenticación que utilizará el sitio Web.
3. Seleccione la opción Desde Internet. Esta opción especifica que el sitio web utilizará la autenticación de formularios ASP.NET, que confía en el sistema de pertenencia a ASP.NET. Al utilizar la autenticación de formularios, los usuarios inician sesión en el sitio web utili zando la página de inicio de sesión que creó anteriormente en este tutorial. (La opción De una red de área local configura el sitio web para utilizar la autenticación de Windows, que es práctica si las personas que tienen acceso al sitio están en una red corporativa. Tal y como se ha mencionado anteriormente, esta es la configuración predeterminada de la pertenencia a ASP.NET). 4. Haga clic en Siguiente. El asistente indica que la aplicación se configura para utilizar los valores de proveedor avanzados. De forma predeterminada, la información de pertenencia se almacena en un archivo de base de datos de Microsoft SQL Server Express en la carpeta App_Data del sitio web. 5. Haga clic en Siguiente. 6. Desactive la casilla Habilite las funciones para este sitio web y, a continuación, haga clic en Siguiente. El asistente muestra una página donde puede crear nuevos usuarios. 7. Escriba información que defina a un usuario del sitio web. Utilice los valores que se indican a continuación como pauta. (Puede usar los valores que desee, pero asegúrese de anotarlos. Estos valores se usarán posteriormente en el tutorial.) User Name Su nombre (sin espacios) o un nombre de ejemplo. o
Password Una contraseña. Se requiere una contraseña segura (una que incluya mayúsculas y minúsculas, signos de puntuación y tenga al menos ocho caracteres). E-mail La dirección de correo electrónico personal. Si tiene que o restablecer la contraseña, esta dirección se utilizará para enviarle una nueva contraseña. Por consiguiente, tiene que escribir una dirección de correo electrónico válida. Security Question y Security Answer Escriba una pregunta y una o respuesta que puedan servirle posteriormente en caso de que necesite recuperar la contraseña. 8. Active la casilla Usuario activo. 9. Haga clic en Crear usuario. El asistente muestra una página de confirmación. o
Nota
Deje abierta la herramienta Administración de sitios Web. Establecer reglas de acceso a la página de miembros Anteriormente en el tutorial, creó una carpeta denominada MemberPages y agregó una página solo para miembros.En esta parte del tutorial, creará una regla que se asegura de que sólo usuarios que han iniciado sesión puedan tener acceso a la s páginas de esa carpeta. Para preparar las reglas de acceso 1. En el asistente de seguridad de la herramienta Administración de sitios Web, haga clic en Siguiente. El asistente muestra la página Agregar nuevas reglas de acceso. 2. En el cuadro Agregar nueva regla de acceso, expanda el nodo correspondiente a su sitio Web. 3. Seleccione la carpeta MemberPages que creó anteriormente. 4. En La regla se aplica a, seleccione Usuarios anónimos. 5. En Permiso, seleccione Denegar. La regla que está creando deniega el acceso a los usuarios anónimos, es decir, a los que no se han registrado. 6. Haga clic en Agregar esta regla. La nueva regla se muestra en la cuadrícula. Cuando los usuarios solicitan una página de la carpeta MemberPages, se comprueban las reglas para determinar si se permite el acceso del usuario a la página. 7. Haga clic en Finalizar. Ya ha terminado de trabajar con el asistente. El asistente se cierra y vuelve a la pestaña Seguridad de la herramienta Administración de sitios Web. Probar la página sólo para miembros Puede probar la página solo para miembros teniendo acceso a ella como un usuario anónimo y un usuario registrado. Para probar la página sólo para miembros 1. En Visual Studio, presione CTRL+F5 para ejecutar el sitio web y mostrar la página Default.aspx.
2. Cuando la página Default.aspx aparezca en el explorador, no inicie sesión. En su lugar, haga clic en el vínculo Página de miembros. Se mostrará la página Login.aspx, ya que el acceso a la página de miembros se deniega a los usuarios anónimos. 3. En la página de inicio de sesión, escriba el nombre de usuario y la contraseña que usó al crear el usuario de inicio de sesión. Cuando inicia sesión, el sitio le redirige a la página para miembros porque ya no es un usuario anónimo. 4. Cierre la ventana del explorador. Agregar nuevos usuarios En la primera parte del tutorial, creó un usuario con la herramienta Administración de sitios Web. La herramienta Administración de sitios Web es útil si está trabajando con una lista pequeña y definida de usuarios, como los de un equipo pequeño. Sin embargo, en muchos sitios web, los usuarios se pueden registrar. Por compatibilidad con esta característica, ASP.NET incluye el control CreateUserWizard, que realiza la misma tarea que realizamos anteriormente con la herramienta Administración de sitios Web. Crear una página de registro En esta parte del tutorial, agregará una funcionalidad que permite a los usuarios registrarse en el sitio web. Para empezar, creará una página de registro. Para crear una página de registro 1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de sitio web y, a continuación, seleccione Agregar nuevo elemento. 2. Agregue un nuevo Formulario Web Forms denominado Register.aspx y haga clic en Agregar.
Nota
Asegúrese de crear la página en la raíz del sitio web, no en la carpeta MemberPages. 3. En la página Register.aspx, cambie a la vista de diseño y escriba texto estático, como Registrar en la página. En la barra de herramientas Formato, utilice la lista desplegable Formato del bloque para dar formato al texto como Encabezado 1. 4. Arrastre un control CreateUserWizard desde el grupo Inicio de sesión del Cuadro de herramientas hasta la página. 5. En la ventana Propiedades correspondiente al control CreateUserWizard, establezca la propiedadContinueDestinationPageUrl en ~/Default.aspx. Esto configura el control de forma que vuelve a la página principal cuando los usuarios hacen clic enContinuar después de crear un usuario. 6. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas hasta la página. 7. En la ventana Propiedades del control HyperLink , haga lo siguiente: Establezca la propiedad Text en Página principal. o Establezca la propiedad NavigateUrl en ~/Default.aspx. o 8. Guarde y cierre la página.
Ahora agregará un vínculo que muestra la página de registro a la página principal y la de inicio de sesión. Para este tutorial, suponga que sólo desea mostrar el vínculo de registro a usuarios que no han iniciado sesión. Para crear un vínculo de registro en la página principal 1. Abra o cambie a la página Default.aspx. 2. Haga clic con el botón secundario del mouse en el control LoginView que agregó anteriormente y haga clic en Mostrar etiqueta inteligente. 3. En el panel Tareas de LoginView, seleccione AnonymousTemplate en el cuadro de lista Vistas para activar la edición en la plantilla anónima. 4. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas hasta la plantilla anónima. Puede ser más fácil colocar el cursor en el área de edición y hacer doble clic en el control HyperLink del Cuadro de herramientas. 5. En la ventana Propiedades del control HyperLink , haga lo siguiente: a. Establezca la propiedad Text en Register. b. Establezca la propiedad NavigateUrl en Register.aspx. 6. Cambie a la página Login.aspx o ábrala. 7. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas a la página. 8. En la ventana Propiedades del control HyperLink , haga lo siguiente: a. Establezca la propiedad Text en Register. b. Establezca la propiedad NavigateUrl en Register.aspx. Ya puede probar el proceso de registro. Para probar el registro 1. Cambia a la página Default.aspx y presione CTRL+F5 para ejecutar el sitio web y mostrar la página Default.aspx. Dado que no ha iniciado sesión, se muestra el vínculo Registrar. 2. Haga clic en el vínculo Registrar. Se muestra la página de registro. 3. En los cuadros, escriba un nuevo nombre de usuario, una contraseña segura, una dirección de correo electrónico y una pregunta y respuesta de se guridad. (Se requieren los cinco datos). 4. Haga clic en Crear usuario. Se muestra un mensaje de confirmación. 5. Haga clic en Continuar. Vuelve a la página principal como un usuario registrado. Observe que el vínculo Login ha cambiado a Logouty que la información mostrada en el control Login procede de la propiedad LoggedInTemplate, no de la propiedad AnonymousTemplate. 6. Haga clic en el vínculo Logout. La página cambia para mostrar la información sobre usuarios anónimos. 7. Haga clic en el vínculo Inicio de sesión. 8. Escriba las credenciales para el usuario que creó. Ya ha iniciado sesión como el nuevo usuario. 9. Cierre la ventana del explorador. Permitir a los usuarios el cambio de contraseña A veces, es posible que los usuarios deseen cambiar sus contraseñas y, a menudo, no es posible hacerlo manualmente. En consecuencia, puede utilizar otro control ASP.NET para permitir a los usuarios cambiar las contraseñas. Para cambiar una contraseña, los usuarios deben conocer su contraseña existente. Agregará una página donde los usuarios registrados pueden cambiar la contraseña. Para crear una página de cambio de la contraseña
1. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta MemberPages, haga clic enAgregar nuevo elemento y agregue un nuevo formulario Web Form, denomínelo ChangePassword.aspx y haga clic en Agregar. Asegúrese de que crea la página en la carpeta MemberPages. Está colocando la página en la carpeta MemberPages porque únicamente los usuarios registrados pueden cambiar sus contraseñas. 2. En la página ChangePassword.aspx, pase a la Vista de diseño y escriba texto como Cambiar contraseña y dele formato de Encabezado 1. 3. Arrastre un control ChangePassword desde el grupo Inicio de sesión del Cuadro de herramientas hasta la página. 4. En la ventana Propiedades correspondiente al control ChangePassword, establezca la propiedadContinueDestinationPageUrl en ~/Default.aspx. Esto configura el control de forma que vuelva a la página principal cuando los usuarios hacen clic enContinuar después de cambiar una contraseña. 5. Guarde y cierre la página. Crear un vínculo de cambio de contraseña en la página principal Ahora puede agregar a la página principal un vínculo que muestra la página de cambio de contraseña ChangePassword.aspx. Hará que el vínculo esté disponible sólo para los usuarios que inicien sesión. Para crear un vínculo de cambio de la contraseña en la página principal 1. Abra o cambie a la página Default.aspx. 2. Haga clic con el botón secundario del mouse en el control LoginView y, a continuación, haga clic en Mostrar etiqueta inteligente. 3. En el recuadro Tareas de LoginView, en la lista Vistas, haga clic en LoggedInTemplate. Esto cambia el control LoginView al modo de edición para el contenido que se mostrará a los usuarios que han iniciado sesión. 4. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas hasta el área de edición. 5. En la ventana Propiedades del control HyperLink , haga lo siguiente: a. Establezca la propiedad Text en Cambiar contraseña. b. Establecer la propiedad NavigateUrl en ~/MemberPages/ChangePassword.aspx. Probar la página de cambio de contraseña Ahora puede probar el proceso de cambio de la contraseña. Para probar la página de cambio de contraseña 1. Presione CTRL+F5 para ejecutar el sitio Web. 2. En la página Default.aspx, haga clic en el vínculo Inicio de sesión e inicie la sesión como uno de los usuarios que ha creado. Cuando finalice, se le devuelve a la página principal como un usuario registrado. 3. Haga clic en el vínculo Cambiar contraseña. 4. En la página de cambio de la contraseña, escri ba la contraseña anterior y una nueva contraseña y, a continuación, haga clic en Change Password. 5. Haga clic en Continuar. 6. En la página principal, haga clic en Cerrar sesión. 7. Haga clic en Inicio de sesión. 8. Inicie sesión con la nueva contraseña. 9. Cierre el explorador. Permitir a los usuarios restaurar la contraseña
Cuando los usuarios olvidan la contraseña, el sitio web les permite recuperarla o restablecerla. Se puede recuperar la contraseña (es decir, enviársela al usuario) si no tiene aplicado un algoritmo hash. Cuando se aplica a una contraseña un algoritmo hash, el sis tema de pertenencia no almacena la contraseña real. En su lugar, el sistema procesa la contraseña mediante un algoritmo unidireccional (un algoritmo hash) que genera un valor único para la contraseña y, a continuación, almacena este valor hash. Este algoritmo se puede repetir para probar la contraseña de un usuario en el inicio de sesión, pero no se puede invertir para generar la contraseña real.Esto aumenta la seguridad de la base de datos de pertenencia, porque el acceso a la base de datos no significa que se expongan las contraseñas. De forma predeterminada, el proveedor de pertenencia almacena la contraseña como un valor hash. Por consiguiente, no se puede recuperar. En su lugar, si un usuario ha olvidado la contraseña, el sitio web debe generar una nueva y enviarla al usuario por correo electrónico. Para que el sitio web envíe los mensajes de correo electrónico el equipo debe tener acceso a un servidor de Protocolo simple de transferencia de correo (SMTP). En este procedimiento, agregará una página de restablecimiento de contraseña al sitio web y configurará el sitio web para enviarles una nueva contraseña a los usuarios por correo electrónico. Para restablecer una contraseña, el usuario debe proporcionar un nombre de usuario y responder la pregunta de seguridad que se proporcionó cuando se registró. La nueva contraseña se envía a la dirección de correo electrónico que el usuario proporcionó al registrarse. Para crear la página de restablecimiento de contraseña 1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de sitio web y, a continuación, seleccione Agregar nuevo elemento. 2. Agregue una nueva página Formulario Web Forms, denomínela PasswordRecovery.aspx y haga clic en Agregar.
Nota
Asegúrese de crear la página en la raíz del sitio web, no en la carpeta MemberPages. 3. En la página PasswordRecovery.aspx, pase a la Vista de diseño y escriba texto como Olvido de contraseña en la página y dele formato de Encabezado 1. 4. Arrastre un control PasswordRecovery desde el grupo Inicio de sesión del Cuadro de herramientas hasta la página. 5. Abra la página Login.aspx o cambie a ella, y cambie a l a Vista de diseño. 6. Arrastre un control HyperLink desde el grupo Estándar del Cuadro de herramientas hasta la página. 7. Establezca la propiedad Text en Olvido de contraseña y la propiedad NavigateUrl en~/PasswordRecovery.aspx. Configurar el sitio web para usar un servidor SMTP Luego, configurará el sitio web para que utilice un servidor SMTP. Para configurar el servidor correctamente, debe tener la información de instalación. Si el servidor requiere la autenticación, necesitará el nombre de usuario y la contraseña. Para saber cómo
obtener esta información para la instalación, póngase en contacto con el administrador del sistema. Después de determinar cómo obtener acc eso al servidor SMTP, debe configurar el sitio web para enrutar los mensajes de correo electrónico a ese servidor. Puede hacerlo en la herramienta Administración de sitios Web o escribiendo en el archivo Web.config del sitio web una entrada que contenga una serie de opciones que determinan cómo se ejecuta la aplicación. El siguiente procedimiento muestra cómo utilizar la herramienta Administración de sitios Web de ASP.NET para realizar esta tarea. Para configurar el sitio web para usar un servidor SMTP 1. En el menú Sitio Web, haga clic en Configuración de ASP.NET . 2. En la herramienta Administración de sitios Web, haga clic en la pestaña Aplicación. 3. En Configuración SMTP, haga clic Definir configuración de correo electrónico SMTP. La herramienta muestra una página donde puede configurar el correo electrónico. 4. Escriba la información que la página solicita. 5. Haga clic en Guardar y, en la página de confirmación, haga clic en Aceptar. La herramienta Administración de sitios Web crea un archivo Web.config que tiene la configuración que ha establecido en la sección mailSettings. 6. Cierre la ventana del explorador en la que se muestra la herramienta Administración de sitios Web. 7. Abra el archivo Web.config. 8. Bajo el elemento system.net y bajo el elemento mailSettings, compruebe la configuración de smtp y host.
Nota
Si el servidor SMTP requiere una conexión segura, debe establecer el atributo enableSsl en true. En la sección network del archivo Web.config, agregue un elemento smtp. 9. La configuración SMTP será similar a la del siguiente archivo Web.config de ejemplo. 10.
11. 12. 13. 15. 16. 17.
Nota sobre la seguridad
Para proteger la información de configuración, como el nombre de usuario y contraseña, haga que ASP.NET cifre la parte del archivo Web.config donde la información de SMTP está almacenada. Para obtener más información, vea Cifrar la información de configuración mediante una configuración protegida. Además, de forma predeterminada ASP.NET envía las credenciales del servidor smtp en texto no cifrado y puede ser interceptado por programas que graben la actividad en la red. En un sitio de producción, debe utilizar SSL (capa de sockets seguros) para cifrar la información confidencial que se intercambia con el servidor. Probar la restauración de la contraseña Puede probar el proceso de restablecer la contraseña ahora. Después la usará para iniciar sesión. Para probar la página de restablecimiento de contraseña 1. Presione CTRL+F5 para ejecutar el sitio Web. 2. Haga clic en Inicio de sesión. 3. En la página de inicio de sesión, haga clic el vínculo Olvido de contraseña. Escriba su nombre de usuario y haga clic en Enviar. 4. Escriba la respuesta a la pregunta de seguridad y, a continuación, haga clic Enviar. 5. Espere unos minutos antes de comprobar el correo electrónico. 6. Utilice la nueva contraseña para iniciar sesión. Pasos siguientes En este tutorial se ha ilustrado un caso sencillo pero completo para crear una aplicación que pide credenciales a los usuarios, muestra información a los que han iniciado sesión, permite restablecer una contraseña olvidada y limita el acceso a ciertas páginas. Puede crear páginas y aplicaciones más sofisticadas utilizando las técnicas y controles mostrados en el tutorial. Por ejemplo, quizá quiera hacer lo siguiente: Crear usuarios adicionales y definir funciones (grupos) como administradores, ventas o miembros, y asignar funciones diferentes a l os usuarios. Para obtener información detallada, vea Tutorial: Administrar los usuarios de sitios web con roles. Cambiar la apariencia de los controles de inicio de sesión. Los controles Login, PasswordRecovery, yCreateUserWizard admiten plantillas, de manera que puede configurar y aplicar autoformato al texto y los botones que contienen. Combinar la pertenencia con propiedades de perfil que permiten almacenar la configuración específica de cada usuario. Para obtener información detallada, vea Tutorial: Mantener la información de usuarios de sitios web con propiedades de perfil. Agregue los controles de inicio de sesión a las páginas maestras ASP.NET. Las páginas maestras permiten definir un diseño de página que se puede utilizar con todas las páginas de una aplicación. Para obtener i nformación detallada, vea Tutorial: Crear y usar páginas maestras ASP.NET en Visual Web Developer .