You are on page 1of 15

Tutorial: Mantener la informacin de usuarios de

sitios Web con propiedades de perfil


Las propiedades de ASP.NET Profile permiten a una aplicacin efectuar el seguimiento y almacenar
permanentemente informacin especfica del usuario. Por ejemplo, los usuarios pueden especificar
un cdigo postal o su combinacin de colores preferida, y esa informacin se puede almacenar y
recuperar desde cualquier parte de la aplicacin. ASP.NET hace coincidir automticamente el
usuario actual (ya sea un usuario annimo o registrado) con la informacin personal que est
almacenada en su cuenta de usuario.
Este tutorial muestra cmo agregar propiedades Profile a una aplicacin y crear con ellas una
experiencia personalizada para los visitantes del sitio Web.
Durante este tutorial aprender a hacer lo siguiente:
Configurar una aplicacin para utilizar las propiedades Profile.
Definir propiedades Profile simples y complejas que desea mantener para los usuarios.
Establecer y recuperar los valores de Profile en su aplicacin.
Utilizar propiedades Profile que tienen usuarios annimos y registrados.
Requisitos previos

Para poder completar este tutorial, necesitar lo siguiente:
Microsoft Visual Web Developer.
Microsoft .NET Framework.
Microsoft SQL Server Standard Edition.
La informacin de la propiedad Profile que crea en el tutorial se almacenar en una base
de datos de SQL Server Standard Edition.
Las cookies habilitadas en su explorador.
Nota
Las propiedades de ASP.NET Profile pueden funcionar sin cookies si la aplicacin se configura para
ello. Sin embargo, en este tutorial utilizar las opciones de configuracin predeterminadas para las
propiedades Profile, que utilizan cookies.
Crear y configurar el sitio Web



Si ya ha creado un sitio Web en Microsoft Visual Studio finalizando Tutorial: Crear una pgina Web
bsica en Visual Web Developer, puede utilizar ese sitio Web e ir a la seccin siguiente. De lo
contrario, cree un sitio Web nuevo siguiendo estos pasos.
Para crear un sitio Web del sistema de archivos
1. Abra Visual Studio.
2. En el men Archivo, seale a Nuevo y, a continuacin, haga clic en Sitio Web (o en el
men Archivo, haga clic en Nuevo sitio Web).
Aparece el cuadro de dilogo Nuevo sitio Web.
3. En Plantillas instaladas de Visual Studio, haga clic en Servicio Web ASP.NET.
4. En la lista Ubicacin situada ms a la izquierda, haga clic en Sistema de archivos.
5. En la lista Ubicacin situada ms a la derecha, escriba el nombre de la carpeta dnde desea
guardar las pginas del sitio Web.
Por ejemplo, escriba el nombre de carpeta C:\WebSites.
6. En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar.
7. Haga clic en Aceptar.
Visual Web Developer crea la carpeta y una nueva pgina denominada Default.aspx.
Configurar las propiedades Profile

Para poder trabajar con las propiedades Profile de ASP.NET, configurar la aplicacin para habilitar
y definir las propiedades Profile cuyo seguimiento desea realizar por cada usuario. Para empezar,
crear una propiedad PostalCode nica con la que el sitio Web realizar el seguimiento de los
usuarios. Tambin configurar la propiedad PostalCode para que su sitio pueda realizar el
seguimiento de usuarios annimos y registrados.
Trabajar primero como un usuario annimo. En segundo plano, ASP.NET le asignar un
identificador nico, annimo que se almacena en una cookie en el equipo. ASP.NET puede utilizar
este identificador annimo para establecer y obtener valores que son nicamente suyos.
Para configurar las propiedades Profile en el sitio Web
1. En el Explorador de soluciones, determine si el sitio Web ya tiene un archivo Web.config.
Si el sitio Web no tiene un archivo Web.config, siga estos pasos:


1. Haga clic con el botn secundario del mouse (ratn) en el nombre del sitio Web.
2. Haga clic en Agregar nuevo elemento.
3. En Plantillas instaladas de Visual Studio, haga clic en Archivo de configuracin
Web.
4. Haga clic en Agregar.
Un nuevo archivo denominado Web.config se agrega al sitio y se abre en el editor.
2. Agregue el elemento <profile> siguiente al archivo Web.config como un elemento
secundario de <system.web>:
Copiar
<system.web>

<anonymousIdentification enabled="true" />
<profile>
<properties>
<add name="PostalCode"
type="System.String"
allowAnonymous="true" />
</properties>
</profile>

<!-- other Web.config settings here -->
</system.web>
Nota
Los elementos del archivo Web.config distinguen entre maysculas y minsculas. Por consiguiente,
asegrese de que copia o escribe los elementos exactamente como se indica.
Ha agregado los elementos siguientes:


o El elemento <anonymousIdentification>, que especifica si las propiedades
Profile slo funcionan con usuarios registrados (autenticados) o con usuarios
registrados y annimos.
En este caso, ha establecido enabled en true. Por consiguiente, se realizar el
seguimiento de informacin de la propiedad Profile para los usuarios registrados y
los annimos.
o El elemento <properties>, que contiene todas las propiedades Profile que ha
definido.
o El elemento <add>, que define un nuevo elemento <profile>.
En este caso, ha definido una propiedad Profile nica denominada PostalCode.
Cuando define una propiedad Profile, especifica su tipo de datos mediante un
nombre de clase a la manera de .NET Framework. Tambin especifica si se realizar
el seguimiento de la propiedad Profile para los usuarios annimos. Despus de
habilitar la identificacin annima, puede especificar adems si realizar el
seguimiento de las propiedades Profile individualmente para los usuarios
annimos.
Creara un nuevo elemento add para cada propiedad Profile adicional que deseara
definir.
Nota
De forma predeterminada, la informacin del perfil de usuario se almacena en una base de datos de
SQL Server Standard Edition en el subdirectorio Application_Data del sitio Web. Este tutorial utiliza
la configuracin predeterminada. En las aplicaciones de produccin que admiten un gran nmero
de usuarios, es mejor almacenar los datos de las propiedades Profile en una base de datos de
Microsoft SQL Server. Para obtener ms informacin, vea "Pasos siguientes" ms adelante en este
tutorial.
Establecer y obtener la propiedad PostalCode

Despus de configurar el sitio Web para realizar el seguimiento de una propiedad Profile, puede
establecer y obtener la propiedad Profile como lo hara normalmente con propiedades de
componentes. En esta seccin, crear una pgina que muestra cmo establecer y obtener el valor
de la propiedad PostalCode que defini en la seccin anterior.
Para crear una pgina que establece y obtiene la propiedad PostalCode


1. Agregue al sitio una nueva pgina Web denominada Profiles.aspx.
2. Abra Profiles.aspx y cambie a la vista Diseo.
3. En el grupo Estndar del Cuadro de herramientas, arrastre los controles enumerados en la
tabla siguiente a la pgina y establezca las propiedades como se indica.
Control Configuracin de la propiedad
TextBox ID = textPostalCode
Button ID = SetPostalCode
Text = Set Postal Code (Establecer cdigo postal)
Label ID = labelPostalCode
Text = (vaco)
4. Cambie a la vista Cdigo fuente y, a continuacin, agregue el atributo siguiente al
botnSetPostalCode si el atributo no existe.
Copiar
OnClick="SetPostalCode_Click"
5. Cree un controlador del evento Click para Set Postal Code (Establecer cdigo postal) y, a
continuacin, agregue el cdigo resaltado siguiente.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
VB
C#


C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
Cuando se habilita el perfil de usuario, ASP.NET crea dinmicamente una propiedad
denominada Profile que agrega el perfil de usuario al contexto actual. Las propiedades
Profile individuales estn a continuacin disponibles a travs de Profile.PostalCode.
6. Cree un controlador del evento Page_Load y, a continuacin, agregue el cdigo resaltado
siguiente.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
VB
C#
C++
F#
JScript
Copiar


Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
Este cdigo mostrar el valor de Profile.PostalCode cada vez que se solicite la pgina.
Probar la propiedad de perfil PostalCode
Ahora puede probar la propiedad PostalCode que defini en la seccin anterior.
Nota
Si est trabajando con un sitio Web existente que tiene habilitada la suscripcin, asegrese de que
ha cerrado la sesin.
Para probar la propiedad PostalCode
1. Presione CTRL+F5 para ejecutar la pgina Profiles.aspx.
Nota
Si el explorador muestra un error 502 o un error que indica que la pgina no se puede mostrar, es
posible que necesite configurar el explorador para que omita los servidores proxy en las solicitudes
locales. Para obtener informacin detallada, vea Cmo: Omitir un servidor proxy para las solicitudes
Web locales.
2. En el cuadro, escriba un cdigo postal y, a continuacin, haga clic en Set Postal Code
(Establecer cdigo postal).
El cdigo postal que escribi aparece en el control Label.
3. Cierre el explorador para cerrar la sesin actual.
4. Vuelva a abrir el explorador y, a continuacin, solicite la pgina Profiles.aspx.
El cdigo postal que escribi anteriormente aparece en el control Label.
El ltimo paso del procedimiento anterior ilustra que ASP.NET almacena el valor de PostalCode.
Cuando visita de nuevo la pgina, ASP.NET puede leer el valor de PostalCode basndose en su
identificador annimo nico.
Definir propiedades complejas



En "Establecer y obtener la propiedad PostalCode", anteriormente en este tutorial, cre una
propiedad simple denominada PostalCode que se almacen como una cadena. En esta seccin,
definir una propiedad denominada FavoriteURLs que es una coleccin. ASP.NET puede almacenar
propiedades Profile de cualquier tipo, pero es necesario proporcionar informacin adicional
cuando se est definiendo dicha propiedad Profile.
Para definir la propiedad FavoriteURLs
1. Abra el archivo Web.config.
2. Agregue el elemento resaltado siguiente al elemento profile que cre en la seccin
"Configurar las propiedades Profile", anteriormente en este tutorial:
Copiar
<anonymousIdentification enabled="true" />
<profile>
<properties>
<add name="PostalCode"
type="System.String"
allowAnonymous="true" />
<add name="FavoriteURLs"
type="System.Collections.Specialized.StringCollection"
allowAnonymous="true" />
</properties>
</profile>
Ha agregado una nueva propiedad Profile denominada FavoriteURLs. En las
propiedades Profile que no son tipos simples (como String o Integer), debe especificar el
tipo completo. Aqu, est especificando que la propiedad Profile ser una coleccin que
contendr cadenas.
3. Guarde y cierre el archivo Web.config.
Establecer y obtener la propiedad FavoriteURLs



Trabajar con la propiedad FavoriteURLs, que es una coleccin, es muy similar a trabajar con una
coleccin en cualquier contexto. En esta parte del tutorial, actualizar la pgina Profiles.aspx que
cre en la seccin "Establecer y obtener la propiedad PostalCode", anteriormente en este tutorial, y
agregar un control TextBox en el que los usuarios pueden escribir una direccin URL. Cuando el
usuario hace clic en Agregar, la direccin URL se agrega a la propiedad FavoriteURLs. Tambin
mostrar la lista actual de direcciones URL favoritas en un cuadro de lista desplegable.
Para establecer y obtener la propiedad FavoriteURLs
1. En la pgina Profiles.aspx, agregue los controles siguientes y establezca sus propiedades
como se indica en la tabla siguiente.
Control Configuracin de la propiedad
TextBox ID = textFavoriteURL
Button ID = AddURL
Text = Add URL (Agregar direccin URL)
ListBox ID = listFavoriteURLs
2. Cambie a la vista Cdigo fuente y, a continuacin, agregue el atributo siguiente al botn
Add URL (Agregar direccin URL) si el atributo no existe.
Copiar
OnClick="AddURL_Click"
3. Cree un controlador del evento Click para Add URL (Agregar direccin URL) y, a
continuacin, agregue el cdigo resaltado siguiente.
VB
C#
C++
F#
JScript
Copiar


Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
4. En el controlador del evento Page_Load, agregue la siguiente lnea de cdigo.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
VB
C#
C++
F#
JScript


Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
5. Agregue la subrutina siguiente para actualizar la presentacin de las direcciones URL en el
control ListBox.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
Probar la propiedad de perfil FavoriteURLs
Ya puede probar la propiedad FavoriteURLs.
Para probar la propiedad FavoriteURLs
1. Para ejecutar la pgina Profiles.aspx, presione CTRL+F5.


Al principio no hay ningn valor en el control ListBox.
2. En el cuadro, escriba una direccin URL y, a continuacin, haga clic en Agregar.
La direccin URL se agrega al control ListBox.
3. Repita el paso anterior para agregar otra direccin URL.
4. Cierre el explorador.
5. Vuelva a abrir el explorador y, a continuacin, abra la pgina Profiles.aspx.
Observe que el control ListBox se rellena con las direcciones URL que escribi antes de
cerrar el explorador.
Migrar las propiedades Profile durante el inicio de sesin

Si un usuario visita por primera vez el sitio de forma annima pero despus se registra, quizs desee
conservar los valores de las propiedades que el usuario estableci cuando era annimo. Un ejemplo
tpico es un sitio de ventas en el que el usuario puede examinar artculos y agregarlos a un carro de
la compra de forma annima pero despus inicia una sesin y paga sus compras. Para conservar los
valores del usuario cuando inicia sesin, puede migrar el usuario del perfil annimo actual al perfil
que tenga como usuario registrado (autenticado).
En esta seccin, migrar el valor de la propiedad PostalCode del usuario. El sitio Web debe estar
configurado para utilizar identidades de usuario y tener una pgina de inicio de sesin. Si el sitio
Web con el que est trabajando an no se ha configurado para la suscripcin, utilice el
procedimiento siguiente para habilitarla. Si el sitio ya admite la suscripcin, puede ir a la seccin
siguiente.
Para configurar el sitio Web para la suscripcin
1. En Visual Studio, en el men Sitio Web, haga clic en Configuracin de ASP.NET.
Aparece la herramienta Administracin de sitios Web.
2. Haga clic en la ficha Seguridad.
3. Haga clic en Seguridad y, a continuacin, bajo Usuarios, haga clic en Seleccionar tipo de
autenticacin.
4. Seleccione Desde Internet y, a continuacin, haga clic en Listo.
La opcin Desde Internet especifica que la aplicacin utilizar la autenticacin de
formularios, en la que los usuarios se registran mediante una pgina de inicio de sesin.
5. En la ficha Seguridad, en Usuarios, haga clic en Crear usuario y, a continuacin, cree una
cuenta de usuario.


Puede utilizar cualquier nombre y contrasea, pero asegrese de recordarlos. Como
direccin de correo electrnico, utilice la suya propia. (En este tutorial no va a enviar
mensajes de correo electrnico.)
6. Despus de finalizar la definicin de la cuenta de usuario, cierre la herramienta
Administracin de sitios Web.
7. Arrastre un control Login y un control LoginName desde el grupo Inicio de sesin del
Cuadro de herramientas hasta la pgina.
El control LoginName no se requiere para el inicio de sesin, pero le ayudar a ver que se
ha registrado.
Crear un controlador de la migracin
Para migrar la configuracin de un usuario annimo a la configuracin de un usuario registrado,
tiene que realizar la migracin cuando la identidad del usuario est cambiando. ASP.NET
proporciona el evento MigrateAnonymous exactamente para este propsito; en el controlador del
evento MigrateAnonymous, puede transferir los valores de configuracin que desee conservar.
Para crear un controlador de migracin
1. En el Explorador de soluciones, haga clic con el botn secundario del mouse en el nombre
del sitio Web y, a continuacin, seleccione Agregar nuevo elemento.
2. En Plantillas instaladas de Visual Studio, haga clic en Clase de aplicacin global y, a
continuacin, haga clic en Agregar.
No tiene que escribir un nombre porque el archivo siempre se denomina Global.asax.
3. Escriba el cdigo siguiente para crear un nuevo controlador para el evento
MigrateAnonymous.
VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.


VB
C#
C++
F#
JScript
Copiar
Este idioma no es compatible o no hay ningn ejemplo de cdigo
disponible.
El cdigo obtiene el perfil del usuario annimo y extrae el valor de la propiedad
PostalCode. A continuacin, obtiene el perfil de la nueva identidad del usuario y
establece el valor equivalente para esa identidad.
Probar la migracin
Para probar la migracin, en primer lugar elegir algunas opciones como usuario annimo. A
continuacin, iniciar sesin y ver que se conservan los valores.
Para probar la migracin
1. Abra la pgina Profiles.aspx y, a continuacin, presione CTRL+F5 para ejecutarla.
El control LoginName no muestra nada porque no ha iniciado sesin todava.
2. Si no se muestra un cdigo postal en la pgina, escriba un nuevo cdigo postal y, a
continuacin, haga clic en Set Postal Code (Establecer cdigo postal).
El cdigo postal de su identidad annima actual se muestra en la pgina.
3. Inicie sesin utilizando el nombre de usuario y contrasea que cre en la seccin "Migrar
las propiedades Profile durante el inicio de sesin", anteriormente en este tutorial.
El control LoginName presenta su nombre de usuario. El cdigo postal que escribi como
usuario annimo sigue mostrndose porque se ha migrado al perfil de usuario registrado.
Pasos siguientes



Este tutorial ha mostrado los procedimientos bsicos para configurar y utilizar las propiedades
Profile en aplicaciones Web. Puede utilizar las propiedades Profile para muchos propsitos en sus
aplicaciones. La lista siguiente sugiere reas adicionales en las que puede ser conveniente trabajar
con propiedades Profile:
Agrupar las propiedades Profile porque es ms fcil trabajar con ellas como una unidad.
Por ejemplo, puede organizar las propiedades Profile denominadas Street, City y
PostalCode en un grupo denominado Address.
Para obtener informacin detallada, vea Definicin de las propiedades de perfil ASP.NET.
Crear tipos personalizados, como un carro de la compra, que se administra con propiedades
Profile.
Para obtener informacin detallada, vea Definicin de las propiedades de perfil ASP.NET.
Seleccionar un proveedor de perfiles diferente.
En este tutorial, ha almacenado los valores de las propiedades Profile en una base de datos
de SQL Server Standard Edition. En las aplicaciones de produccin que admiten un gran
nmero de usuarios, es mejor almacenar los datos de las propiedades Profile en una base
de datos de SQL Server que utilice la clase SqlProfileProvider.
Para obtener ms informacin, vea Herramienta Administracin de sitios Web, Proveedor (Ficha)
y Crear la base de datos de servicios de la aplicacin para SQL Server.
Opcionalmente, puede utilizar un proveedor de perfiles personalizado que almacena la
informacin en un formato y medio de almacenamiento creados con su propio cdigo.
Para obtener informacin detallada, vea Implementar un proveedor de perfiles.

You might also like