Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LABORATORIO Asp.Net – 6.
El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no
se puede reproducir, transcribir, almacenar a un sistema de recuperación o de
alteración, asimismo la traducción a otro idioma de ninguna forma o por ningún
medio mecánico, manual, electrónico, magnético, óptico o de otro modo.
6 Asp.Net
Desde hace tiempo he querido escribir sobre una técnica ASP.NET 2.0 que me parece interesante
compartir. Se trata de utilizar de manera combinada la funcionalidad de las clases Membership y Profiles
para establecer toda la maquinaria de administración y almacenamiento de usuarios. Sabemos que
ASP.NET 2.0 nos ofrece estas piezas de infraestructura para la construcción de soluciones Web con la
finalidad de agilizar la creación y manejo eficiente de usuarios, roles y perfiles, claro entre otras
posibilidades.
Lo que veremos en este post es una técnica que nos permite manipular usuarios con la clase Membership
haciendo uso de los controles Login y que además podamos relacionar y extender los datos que
requerimos asociar a un usuario a través del uso de la funcionalidad de Profiles para que de manera
conjunta extendamos esta funcionalidad a nuestro beneficio.
En muchas ocasiones cuando habilitamos Membership para el control y manejo de usuarios es común que
nos quedemos cortos con los datos de usuario que queremos almacenar y que son relevantes e incluso
requeridos para la aplicación que estamos construyendo. La clase Membership es una clase que cuenta
con métodos estáticos para crear nuevos, eliminar existentes, cambiar contraseñas y validar la existencia
de usuarios. Esta clase funciona con un modelo basado en proveedor el cual nos permite hacer que
trabaje independientemente del origen de datos donde se encuentra la información.
Seguro encontraras mucha mas información que ocupes asociar al contexto de un usuario.
Sin embargo Membership por su naturaleza se queda corto por decirlo así con la cantidad de datos que
almacena y en definitiva necesitamos asociar más información. Aquí es donde entra el uso de Profiles o en
otras palabras perfiles de usuario. Profiles en ASP.NET 2.0 es un mecanismo que permite almacenar de
manera persistente información adicional para cada usuario registrado en nuestro sitio. También funciona
bajo un modelo de tipo proveedor. Si deseas conocer mas sobre Profiles entra a este link. Por un lado
tenemos Membership para la administración de usuarios y Profiles para la extensión de la información de
un usuario en específico.
3.- Dentro de Seguridad, veremos las siguientes plantillas de Usuarios, Funciones y Reglas de Acceso:
Administrador
User
PowerUser
7.- Ahora agregamos a los usuarios para nuestra web, dentro de seguridad agregamos un usuario:
8.- Al final de este proceso se debe de haber creado la base de seguridad de autenticación de usuarios:
Dentro del explorador de servidores, revisamos la base de datos de las tablas que se han creado:
Default.aspx
Login.aspx
CrearCuenta.aspx
Administrador.aspx
AdminCuenta.aspx
VerReportes.aspx
El archivo Web.SiteMap
LoginView
Como ya se ha mencionado anteriormente, el control Login permite crear una página estándar de
inicio de sesión agregando una simple etiqueta a una página.
El control Login genera automáticamente una interfaz de inicio de sesión estándar. En su forma
predeterminada, la interfaz no resulta muy atractiva, pero se puede mejorar de forma muy rápida
la apariencia del control Login en Visual Studio .NET 2005 haciendo clic con el botón secundario
del mouse en el control y seleccionando AutoFormat (consulte la figura 3). Observe cómo se
crean cuadros de texto de nombre de usuario y contraseña, una casilla de verificación para
recordar al usuario la próxima vez que inicie sesión y un botón para enviar la información.
Tipos de vista:
AnonymousTemplate
Dentro de esta vista, colocamos un table con las dos Url’s como se muestra en la figura siguiente:
LoggedInTemplate.
Dentro de esta vista, colocamos un table con las dos Url’s como se muestra en la figura siguiente:
LoginName y LoginStatus
Los controles LoginName y LoginStatus permiten mostrar información sobre el estado actual de
la autenticación de un usuario. Después de que un usuario ha iniciado sesión en la aplicación, el
control LoginName muestra su nombre de usuario registrado. Si un usuario no se autentica con
la autenticación por formularios, el control LoginName no muestra nada. El control LoginName
se puede declarar en una página de la siguiente manera:
LoginStatus, por su parte, permite que el usuario inicie o cierre sesión en la aplicación Web. El
control muestra uno de dos vínculos. Si el usuario no se ha autenticado, se muestra un vínculo a
la página Login.aspx. Si ya se ha autenticado, se muestra un vínculo que le permite cerrar sesión.
El control LoginStatus se declara de esta forma:
<asp:LoginStatus ID="LoginStatus1" Runat="server" />
Login
La pagina de default nos mostrara un mensaje de bienvenida y un link q nos llevara a ver el
estado del usuario pero para poder ingresar a la pagina debemos estar previamente logueados y
para eso implementamos la pagina de LogIn, nos vamos al ToolBox y agregamos un Control
llamdo LogIn, bueno en esta pagina no usaremos codigo, como ya es conocido esto es lo que se
estila en esta nueva version de ASP .NET 2.0, pero lo que si haremos es configurar las
propiedades del control para que se pueda adecuar a nuestra necesidad. Las propiedades a
configurar son las siguientes:
TitleText
UserNameLabelText
PasswordLabelText
RemenberMeText
LoginButtonText
PasswordRecoveryText
PasswordRecoveryText:
Indica el texto a mostrar, para el recordatorio de la contraseña.
PasswordRecoveryUrl:
Indica la dirección de la página a donde dirigirse para el recuerdo de la clave, la cual debe ser la
paina EnviaClave.aspx.
UserNameRequiredErrorMessage:
Indica el texto a mostrar, cuando se omite ingresar el usuario al tratar de iniciar la sesión.
PasswordRequiredErrorMessage:
Indica el texto a mostrar, cuando se omite ingresar la contraseña del usuario al tratar de iniciar la
sesión.
FailureText:
Indica el texto a mostrar, cuando no se logra iniciar la sesión.
CreateUserTex
Usado para mostrar el mensaje de un nuevo usuario, será el texto que ira en el control para crear
un nuevo usuario.
CreateUserUrl
Será la pagina a la cual nos redireccionara a la pagina donde crearemos un nuevo usuario. Es decir
la direccionamos a la pagina CrearCuenta.aspx.
ChangePassword
El control ChangePassword, como se puede suponer, permite a los usuarios cambiar sus
contraseñas registradas. El control crea cuadros de texto en los que se puede facilitar la
contraseña original y la nueva (consulte la figura 6).
Tipos de Vista:
Change Password
Success
CancelDestinationPageurl:
Será la pagina a la cual nos redireccionara en la acción del evento “Cancelar”. Aquí la
direccionamos a la pagina XXXxxxx.aspx
ContinueDestinationPageUrl
Será la pagina a la cual nos redireccionara al terminar de realizar el cambio de contraseña. Aquí la
direccionamos a la pagina XXXXX.aspx
CreateUserTex
Usado para mostrar el mensaje de un nuevo usuario, será el texto que ira en el control para crear
un nuevo usuario.
CreateUserUrl
Será la pagina a la cual nos redireccionara a la pagina donde crearemos un nuevo usuario. Es decir
la direccionamos a la pagina CrearCuenta.aspx
CreateUserWizard
CreateUserWizard permite crear una página estándar de registro de usuarios. Simplemente
agregando la siguiente etiqueta a la página, los nuevos usuarios podrán registrarse en el sitio
Web.
PasswordRecovery
El control PasswordRecovery permite que los usuarios de la aplicación Web puedan solicitar un
mensaje de correo electrónico de recordatorio de su contraseña (consulte la figura 5). Al igual que
el control CreateUserWizard, las propiedades del mensaje de correo electrónico enviado al
usuario se definen mediante la propiedad MailDefinition.
Propiedades de PasswordRecovery
Tipos de Vista
UserName
Question
Success
Dentro de las propiedades de passwordRecocvery se definen los atributos de MailDefinition para configrar
el envió de la clave a determinado correo:
En el cual se debe de introducir el nombre del servidor de configuración para el correo SMTP.