Cómo: Generar y ejecutar el ejemplo de proveedor de perfiles

Actualización: noviembre 2007

Los temas de esta sección incluyen el código de un ejemplo de proveedor de perfiles de ASP.NET. El proveedor del ejemplo utiliza el proveedor de datos de .NET Framework para ODBC que permite establecer conexión con un origen de datos ODBC. El ejemplo utiliza una base de datos de Access como origen de datos.

En este tema se describen los detalles de implementación relacionados con el ejemplo de proveedor de perfiles y se explica cómo generar el ejemplo y configurar una aplicación ASP.NET para que utilice el proveedor.

Nota:

Dado que los orígenes de datos admiten sintaxis SQL diferentes, algunos comandos SQL funcionarán con un origen de datos y no con otro. En consecuencia, se recomienda crear un proveedor de perfiles específico del origen de datos aunque se utilice el proveedor de datos de .NET Framework para ODBC o el proveedor de datos de .NET Framework para OLEDB a fin de tener acceso al origen de datos. Por ejemplo, puede crear proveedores independientes como SybaseProfileProvider, OracleProfileProvider, etc.

Para obtener el código del proveedor de ejemplo, vea Ejemplo de implementación de proveedor de perfiles.

Crear la base de datos del proveedor

El proveedor ha sido diseñado para leer y escribir datos en tres tablas de base de datos: Profiles, StockSymbols y ProfileData. El proveedor de perfiles del ejemplo admite dos propiedades de perfil: una lista de símbolos de valores bursátiles y un código postal.

Cada perfil de usuario está identificado de forma única en la tabla Profiles de la base de datos. La información del perfil, como el nombre de la aplicación y la fecha de la última actividad, está incluida en dicha tabla. La tabla Profiles contiene una clave principal que se incrementa automáticamente y se utiliza para identificar de forma única cada una de las filas y para relacionar la tabla con otras tablas de la base de datos que contienen valores de las propiedades de perfil.

La tabla StockSymbols contiene los valores de la lista de símbolos de valores bursátiles que se almacenan y se recuperan mediante la propiedad StockSymbols. Dicha tabla tiene una relación de uno a varios con la tabla Profiles, dado que un solo perfil de usuario puede realizar el seguimiento de cualquier número de símbolos de valores bursátiles.

El valor de la propiedad ZipCode se almacena en la tabla ProfileData. Esta tabla tiene una relación de uno a varios con la tabla Profiles.

Para crear las tablas de la base de datos para almacenar los perfiles

  1. Cree una base de datos de Microsoft Access o abra una existente.

    Nota:

    Si almacena la base de datos en las carpetas de archivos de la aplicación Web, se recomienda que lo haga en la carpeta App_Data de la aplicación. El contenido de esta carpeta está disponible para el código de la aplicación, pero no se expone para las solicitudes Web. Además, el proceso de ASP.NET tiene permiso para leer y escribir en la carpeta App_Data.

  2. En Access o en otra herramienta que pueda crear tablas en las bases de datos de Access, emita la consulta de definición de datos siguiente para crear la tabla Profiles:

    CREATE TABLE Profiles
    (
      UniqueID AutoIncrement NOT NULL PRIMARY KEY,
      Username Text (255) NOT NULL,
      ApplicationName Text (255) NOT NULL,
      IsAnonymous YesNo, 
      LastActivityDate DateTime,
      LastUpdatedDate DateTime,
        CONSTRAINT PKProfiles UNIQUE (Username, ApplicationName)
    )
    
  3. Emita la consulta de definición de datos siguiente para crear la tabla StockSymbols:

    CREATE TABLE StockSymbols
    (
      UniqueID Integer,
      StockSymbol Text (10),
        CONSTRAINT FKProfiles1 FOREIGN KEY (UniqueID)
          REFERENCES Profiles
    )
    
  4. Emita la consulta de definición de datos siguiente para crear la tabla ProfileData:

    CREATE TABLE ProfileData
    (
      UniqueID Integer,
      ZipCode Text (10),
        CONSTRAINT FKProfiles2 FOREIGN KEY (UniqueID)
          REFERENCES Profiles
    )
    

Proporcionar acceso al registro de eventos

Si el proveedor del ejemplo detecta una excepción mientras trabaja con el origen de datos, escribe información sobre la misma en el registro de eventos de la aplicación para Windows en lugar de devolverla a la aplicación ASP.NET. Esta operación se realiza como medida de seguridad para que no se exponga información privada sobre el origen de datos en la aplicación ASP.NET.

El proveedor del ejemplo especifica un evento Source de "OdbcProfileProvider". Para que la aplicación ASP.NET pueda escribir correctamente en el registro de eventos de aplicación, es necesario crear el acceso a dicho registro.

Nota:

Si no desea que el proveedor del ejemplo escriba excepciones en el registro de eventos, puede establecer el atributo writeExceptionsToEventLog en false en la configuración del proveedor en el archivo Web.config.

Para proporcionar acceso al registro de eventos

  • Mediante Regedit.exe u otra herramienta de edición del Registro de Windows, cree la clave del Registro siguiente:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OdbcProfileProvider
    

Generar el proveedor del ejemplo

Para poder utilizar el proveedor del ejemplo, debe hacer que el código esté disponible para la aplicación Web. Puede hacerlo de dos maneras:

  • Coloque el código fuente del proveedor en la carpeta App_Code de la aplicación. En este caso, no es necesario compilar manualmente el código del ejemplo.

  • Compile el código y coloque el ensamblado resultante en la carpeta Bin de la aplicación o asígnele un nombre seguro y colóquelo en la Caché de ensamblados global.

Para probar el proveedor del ejemplo sin compilarlo manualmente

  1. Si la aplicación aún no tiene una carpeta denominada App_Code, cree una en el directorio raíz.

  2. En la carpeta App_Code, cree un archivo de texto denominado OdbcProfileProvider.vb u OdbcProfileProvider.cs, según el lenguaje de programación que desee utilizar.

    Nota:

    Si ya tiene código fuente en el directorio App_Code de la aplicación, utilice la versión del proveedor de ejemplo escrita en el mismo lenguaje que el código existente en el directorio. ASP.NET compilará el proveedor la primera vez que se solicite una página de la aplicación ASP.NET.

  3. Copie el código fuente del ejemplo (en el lenguaje adecuado), péguelo en el archivo de texto correspondiente y guarde el archivo.

Para compilar el proveedor del ejemplo

  1. Cree una carpeta para los archivos de código fuente de los controles personalizados y las clases relacionadas.

  2. En la carpeta de código fuente, cree un archivo de texto denominado OdbcProfileProvider.vb u OdbcProfileProvider.cs, según el lenguaje de programación que desee utilizar.

    Nota:

    No coloque el código fuente en la carpeta App_Code si también va a compilar manualmente el ejemplo y va a agregar su ensamblado a la carpeta Bin. Si lo hace, el tipo del proveedor existirá tanto en el ensamblado compilado como en el ensamblado generado dinámicamente por ASP.NET en la carpeta App_Code. Esto crearía una referencia ambigua al cargar el proveedor y el código que haga referencia al tipo generaría un error del compilador.

  3. Copie el código fuente de cada ejemplo, péguelo en el archivo de texto correspondiente y guarde el archivo.

  4. Ejecute el comando siguiente desde la carpeta de código fuente para compilar los controles y las clases relacionadas en un ensamblado.

    vbc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.vb /r:System.Web.dll /r:System.Configuration.dll
    
    csc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.cs /r:System.Web.dll /r:System.Configuration.dll
    

    La opción /t:library del compilador indica a éste que debe crear una biblioteca (en lugar de un ensamblado ejecutable). La opción /out proporciona un nombre para el ensamblado y la opción /r muestra los ensamblados que están vinculados al ensamblado.

    Nota:

    Si no puede ejecutar el comando del compilador, deberá agregar la ruta de acceso de la instalación de .NET Framework a la variable PATH antes de ejecutar el comando. En Windows, haga clic con el botón secundario del mouse en Mi PC, haga clic en Propiedades, haga clic en la ficha Avanzadas y, a continuación, haga clic en el botón Variables de entorno. En la lista Variables del sistema, haga doble clic en la variable Path. En el cuadro de texto Valor de variable, agregue un punto y coma (;) al final de los valores existentes en el cuadro de texto y, a continuación, escriba la ruta de acceso a su instalación de .NET Framework. Generalmente, .NET Framework está instalado en la carpeta de instalación de Windows, en \Microsoft.NET\Framework\númeroDeVersión.

Configurar el proveedor del ejemplo en una aplicación ASP.NET

Para poder usar el proveedor del ejemplo con una aplicación Web ASP.NET debe configurar la aplicación para que registre el proveedor.

En la configuración del ejemplo se asume que el sitio Web está configurado para utilizar la autenticación de formularios y se incluye una página ASP.NET denominada Login.aspx que permite a los usuarios iniciar una sesión y establecer una identidad de usuario. La configuración del ejemplo también admite la autenticación anónima a fin de que los usuarios no necesiten proporcionar ningún dato para iniciar la sesión.

Para configurar una aplicación para que utilice el proveedor del ejemplo

  1. Cree una página ASP.NET denominada Login.aspx y realice una de las operaciones siguientes:

    • Agregue un control Login a la página si la aplicación ya está configurada para usar la suscripción ASP.NET.

    • Cree un formulario de inicio de sesión y utilice la autenticación de formularios para autenticar a los usuarios. Para obtener más información, vea Cómo: Implementar la autenticación de formularios simple.

      Nota:

      El elemento de configuración requerido para la autenticación de formularios se muestra en el paso 4.

  2. Cree un DSN denominado "OdbcProfile" en su equipo y configúrelo para que incluya la información de conexión a la base de datos de Access que ha creado anteriormente.

  3. Si la aplicación ASP.NET aún no tiene un archivo de texto denominado Web.config, cree uno en la carpeta raíz de la aplicación.

  4. En el archivo Web.config, agregue los elementos siguientes:

    <configuration>
      <connectionStrings>
        <add name="OdbcProfile" connectionString="DSN=OdbcProfile;" />
      </connectionStrings>
    
      <system.web>
        <authentication mode="Forms" >
          <forms loginUrl="login.aspx"
            name=".ASPXFORMSAUTH" />
        </authentication>
    
        <anonymousIdentification enabled="true" />
    
        <profile defaultProvider="OdbcProvider">
          <providers>
            <add
              name="OdbcProvider"
              type="Samples.AspNet.Profile.OdbcProfileProvider" 
              connectionStringName="OdbcProfile" /> 
          </providers>
    
          <properties>
            <add name="ZipCode" 
              allowAnonymous="true" />
            <add name="CityAndState" 
              provider="AspNetSqlProfileProvider" 
              allowAnonymous="true" />
            <add name="StockSymbols" 
              type="System.Collections.ArrayList" 
              allowAnonymous="true" />
          </properties>
        </profile>
      </system.web>
    </configuration>
    

Vea también

Conceptos

Implementar un proveedor de perfiles

Información general sobre las propiedades de perfil de ASP.NET

Otros recursos

Páginas principales ASP.NET

Temas y máscaras de ASP.NET