Información general sobre las propiedades de perfil de ASP.NET
Actualización: noviembre 2007
En muchas aplicaciones, es conveniente almacenar y utilizar información que es única de un usuario. Cuando el usuario visita el sitio, se puede utilizar la información que se ha almacenado para presentar al usuario una versión personalizada de la aplicación Web. La personalización de una aplicación requiere varios elementos: la información se debe almacenar con un identificador de usuario único, debe ser posible reconocer a los usuarios cuando visiten el sitio de nuevo y, a continuación, buscar la información del usuario que se necesite. Para simplificar las aplicaciones, se puede utilizar la característica de perfiles de ASP.NET, que realiza automáticamente todas estas tareas.
La característica de perfiles de ASP.NET asocia información con cada usuario y la almacena en un formato persistente. Los perfiles le permiten administrar la información del usuario sin que sea necesario crear y mantener su propia base de datos. Además, la característica de perfiles de ASP.NET permite que la información del usuario esté disponible a través de una API con establecimiento inflexible de tipos a la que se puede tener acceso desde cualquier parte de la aplicación.
Los perfiles permiten almacenar objetos de cualquier tipo. La característica de perfiles proporciona una función de almacenamiento genérico que permite definir y mantener casi cualquier tipo de datos, al tiempo que los datos están disponibles con seguridad de tipos.
Funcionamiento de los perfiles de ASP.NET
Para poder utilizar perfiles, en primer lugar debe habilitarlos modificando el archivo de configuración de la aplicación Web ASP.NET. Como parte de la configuración, deberá especificar un proveedor de perfiles, que es la clase subyacente que realiza las tareas de nivel inferior consistentes en almacenar y recuperar los datos del perfil. Puede utilizar el proveedor de perfiles incluido con .NET Framework, que almacena los datos de los perfiles en SQL Server, o bien crear y utilizar su propio proveedor de perfiles como se describe en el tema Implementar un proveedor de perfiles. Puede especificar una instancia de la clase SqlProfileProvider que se conecte a una base de datos de su elección, o bien utilizar la instancia predeterminada de SqlProfileProvider que almacena los datos del perfil en el servidor Web local.
La característica de perfiles se configura definiendo la lista de propiedades cuyos valores desea mantener. Por ejemplo, es posible que desee almacenar el código postal del usuario para que la aplicación pueda ofrecer información específica de la región, como boletines meteorológicos. En el archivo de configuración, definiría una propiedad de perfil denominada PostalCode. La sección profile del archivo de configuración podría tener la apariencia siguiente:
<profile>
<properties>
<add name="PostalCode" />
</properties>
</profile>
Cuando se ejecuta la aplicación, ASP.NET crea una clase ProfileCommon, que es una clase generada dinámicamente que hereda la clase ProfileBase. La clase ProfileCommon dinámica incluye las propiedades creadas a partir de las definiciones de propiedades de perfil especificadas en la configuración de la aplicación. A continuación, una instancia de esta clase dinámica ProfileCommon se establece como valor de la propiedad Profile del objeto HttpContext actual y está disponible para las páginas de la aplicación.
En la aplicación, debe recopilar el valor o los valores que desea almacenar y asignárselos a las propiedades de perfil que haya definido. Por ejemplo, la página principal de la aplicación puede contener un cuadro de texto que solicite al usuario que introduzca un código postal. Cuando el usuario introduce el código postal, se establece una propiedad Profile para almacenar el valor correspondiente al usuario actual, como en el ejemplo siguiente:
Profile.PostalCode = txtPostalCode.Text
Profile.PostalCode = txtPostalCode.Text;
Cuando se establece un valor para Profile.PostalCode, dicho valor se almacena automáticamente para el usuario actual. No es necesario escribir ningún código para determinar quién es el usuario actual o almacenar de forma explícita el valor en una base de datos (estas tareas ya las realiza automáticamente la característica de perfiles).
Cuando desee utilizar el valor, puede obtenerlo casi de la misma manera en que lo ha establecido. Por ejemplo, en el ejemplo de código siguiente se muestra la manera de llamar a una función imaginaria denominada GetWeatherInfo y pasarle el código postal del usuario actual que está almacenado en un perfil:
weatherInfo = GetWeatherInfo( Profile.PostalCode )
weatherInfo = GetWeatherInfo( Profile.PostalCode );
No es necesario determinar de forma explícita la identidad del usuario ni realizar búsquedas en ninguna base de datos. Únicamente hay que obtener el valor de la propiedad de un perfil a fin de que ASP.NET realice las acciones necesarias para identificar al usuario actual y busque el valor en el almacén de perfiles persistente.
Vea también
Conceptos
Información general sobre las propiedades de perfil de ASP.NET
Identificación de usuario para las propiedades de perfil de ASP.NET