Este documento presenta un tutorial sobre cómo usar las propiedades de perfil de ASP.NET para almacenar y recuperar información de usuario en una aplicación web. Explica cómo configurar una aplicación para usar propiedades de perfil, definir propiedades simples y complejas, establecer y obtener valores de perfil, y usar propiedades de perfil para usuarios anónimos y registrados. Además, proporciona un ejemplo de código para crear una página que establece y obtiene el valor de una propiedad de perfil para un código postal.
Original Description:
Original Title
Clase 04 Mantener la información de usuarios de sitios Web con propiedades de perfil.docx
Este documento presenta un tutorial sobre cómo usar las propiedades de perfil de ASP.NET para almacenar y recuperar información de usuario en una aplicación web. Explica cómo configurar una aplicación para usar propiedades de perfil, definir propiedades simples y complejas, establecer y obtener valores de perfil, y usar propiedades de perfil para usuarios anónimos y registrados. Además, proporciona un ejemplo de código para crear una página que establece y obtiene el valor de una propiedad de perfil para un código postal.
Este documento presenta un tutorial sobre cómo usar las propiedades de perfil de ASP.NET para almacenar y recuperar información de usuario en una aplicación web. Explica cómo configurar una aplicación para usar propiedades de perfil, definir propiedades simples y complejas, establecer y obtener valores de perfil, y usar propiedades de perfil para usuarios anónimos y registrados. Además, proporciona un ejemplo de código para crear una página que establece y obtiene el valor de una propiedad de perfil para un código postal.
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>
<!-- 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.