Compartir a través de


Configuración del paso 3: Configurar las opciones de origen de datos

por Keith Newman y Robert McMurray

En esta fase de creación del sitio web de ASP.NET, configurará las opciones de origen de datos disponibles en IIS.

3.1. Cadenas de conexión del origen de datos

En esta sección se describe cómo crear una cadena de conexión a una base de datos en IIS mediante la interfaz de usuario del Administrador de IIS o la línea de comandos.

En Planificación y diseño de un sitio web ASP.NET en IIS, tomó las siguientes decisiones de diseño sobre la necesidad de agregar una cadena de conexión:

  1. Especificar un nombre para la cadena de conexión.
  2. Especificar el servidor en el cual está la base de datos.
  3. Especifique el nombre de la base de datos.
  4. Proporcionar las credenciales, a menos que utilice la seguridad integrada de Windows.

Crear una cadena de conexión a base de datos mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.

  2. En Vista Características, haga doble clic en Cadenas de conexión.

  3. En la página Cadenas de conexión, haga clic en Agregar en el panel Acciones.

  4. En el cuadro de diálogo Agregar cadena de conexión, escriba un nombre para la cadena de conexión, como mi Conexión, en el cuadro de texto Nombre.

    Nota:

    El nombre que especifique en el Administrador de IIS es el mismo nombre al que se hace referencia en el código de la aplicación para recuperar los datos mediante esta cadena de conexión.

  5. Con la opción SQL Server seleccionada, escriba en el cuadro de texto Servidor el nombre del servidor donde se hospeda la base de datos y escriba el nombre de la base de datos en el cuadro de texto Base de datos.

  6. En Credenciales, elija una de las siguientes opciones:

    • Seleccione Usar seguridad integrada de Windows.
    • Seleccione Especificar credenciales y haga clic en Establecer. Escriba un nombre de usuario y una contraseña de una cuenta que pueda conectarse al servidor y a la base de datos en los cuadros de texto Nombre de usuario y Contraseña. Luego, escriba la misma contraseña en el cuadro de texto Confirmar contraseña y haga clic en Aceptar.
  7. Haga clic en OK.

Crear una cadena de conexión de base de datos mediante la línea de comandos

Para crear una cadena de conexión de base de datos, use la sintaxis siguiente:

appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='string', name='string', providerName='string']"

La variable connectionString='string' es el valor de la cadena de conexión, la variable name='string' es la clave que se va a usar para obtener acceso al valor de la cadena de conexión, y la variable providerName='string' es el nombre del proveedor de ADO.NET que se va a usar para obtener acceso al almacén de datos subyacente. Por ejemplo, si desea crear una cadena de conexión para una aplicación que use la base de datos Northwind, escriba lo siguiente en el símbolo del sistema y después presione Entrar:

appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;', name='Northwind', providerName='System.Data.SqlClient ']"

3.2. Proveedores de ASP.NET

En esta sección se describe cómo agregar un proveedor .NET a IIS mediante la interfaz de usuario del Administrador de IIS o la línea de comandos.

En Planificación y diseño de un sitio web ASP.NET en IIS, tomó las siguientes decisiones de diseño sobre la incorporación de un proveedor .NET a IIS:

  • Seleccione la característica IIS para que el proveedor proporcione: perfiles de .NET, roles de .NET o usuarios de .NET.

  • Seleccione el tipo de proveedor.

  • Introduzca un nombre para el proveedor.

  • Si la característica seleccionada es Usuarios de .NET, seleccione cualquiera de los siguientes comportamientos de proveedor que desee:

    • Habilitar restablecimiento de contraseña
    • Habilitar la recuperación de contraseña
    • Requerir una pregunta y respuesta
    • Requerir un correo electrónico único
    • Almacenar contraseñas en formato seguro
  • Proporcionar el nombre de la cadena de conexión a la base de datos.

  • Escriba el nombre de la aplicación.

Agregar un proveedor mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.

  2. En Vista Características, haga doble clic en Proveedores.

  3. En la página Proveedores, en Característica, seleccione una de las características siguientes:

    • Roles de .NET: para configurar el proveedor de modo que proporcione una interfaz entre el servicio de administración de roles de ASP.NET ("administrador de roles") y los orígenes de datos de los roles.
    • Usuarios de .NET: para configurar el proveedor de modo que proporcione una interfaz entre el servicio de pertenencia de ASP.NET y los orígenes de datos de pertenencia.
    • Perfil de .NET: para configurar el proveedor de modo que proporcione una interfaz entre el servicio de perfiles de ASP.NET y los orígenes de datos de los perfiles.
  4. En el panel Acciones, haga clic en Agregar.

  5. En el cuadro de diálogo Agregar proveedor, seleccione un tipo de proveedor de la lista desplegable Tipo.

  6. En el cuadro de texto Nombre, escriba un nombre para el proveedor.

  7. Si la característica Usuarios de .NET se ha seleccionado en el paso 3, en la sección Propiedades de perfil, en Comportamiento, establezca el valor de uno o varios de los comportamientos siguientes en True para habilitar el comportamiento:

    • EnablePasswordReset: indica si las contraseñas se pueden restablecer usando el método ResetPassword del proveedor. El valor predeterminado es False.

    • EnablePasswordRetrieval: indica si las contraseñas se pueden recuperar usando el método GetPassword del proveedor. El valor predeterminado es False.

      Importante

      Algunos proveedores, como el de Active Directory, no admiten la recuperación de contraseñas. Para estos proveedores, el valor del atributo enablePasswordRetrieval siempre es False y no se puede cambiar en la configuración.

    • RequiresQuestionAndAnswer: indica si se debe proporcionar una respuesta de la contraseña cuando el programa llama a los métodos GetPassword y ResetPassword del proveedor. El valor predeterminado es False.

    • RequiresUniqueEmail: indica si cada usuario registrado debe tener una dirección de correo electrónico única. El valor predeterminado es False.

    • StorePasswordInSecureFormat: indica si las contraseñas deben tener un algoritmo hash. El valor predeterminado es False.

  8. En Datos, escriba el nombre de la cadena de conexión que se usa para conectar con la base de datos en el cuadro de texto ConnectionStringName. Esta es la misma cadena de conexión que se configuró en la característica Cadena de conexión. Para obtener más información sobre cómo configurar cadenas de conexión, consulte Configuración de cadenas de conexión en IIS 7. Si se ha seleccionado WindowsTokenRoleProvider en el paso 5 de este procedimiento, el nombre de la cadena de conexión será opcional.

  9. De manera opcional, en la sección Propiedades de perfil, en General, escriba la ruta de acceso virtual de la aplicación en el cuadro de texto Nombre de aplicación. Si no especifica ningún valor en el cuadro de texto ApplicationName, la API de pertenencia se establece de forma predeterminada en HttpContext.Current.Request.ApplicationPath. Esta ruta de acceso solo se puede determinar en tiempo de ejecución.

  10. De manera opcional, en la sección Propiedades de perfil, en General, escriba una descripción del proveedor en el cuadro de texto Descripción.

  11. Haga clic en OK.

Agregar un proveedor mediante la línea de comandos

Para agregar un proveedor de roles de .NET, use la sintaxis siguiente:

appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"

La variable name='string' es el nombre del proveedor. La variable type='string' es el tipo del proveedor. La variable connectionStringName='string' es el nombre de la cadena de conexión que se usa para conectarse a la base de datos. La variable applicationName='string' es opcional y es la ruta de acceso virtual de la aplicación. Por ejemplo, para configurar una aplicación de ASP.NET de forma que utilice la clase SqlRoleProvider para almacenar y recuperar información de roles, escriba lo siguiente en el símbolo del sistema y después presione ENTRAR:

appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='SqlProvider', type='System.Web.Security.SqlRoleProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"

Para agregar un proveedor de usuarios de .NET, use la sintaxis siguiente:

appcmd set config /commit:MACHINE /section:membership /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string', enablePasswordReset='true|false', enablePasswordRetrieval='true|false', requiresQuestionAndAnswer='true|false', requiresUniqueEmail='true|false', storePasswordInSecureFormat='true|false']"

Esta sintaxis consta de los siguientes elementos:

  • La variable name='string' es el nombre del proveedor.
  • La variable type='string' es el tipo del proveedor.
  • La variable connectionStringName='string' es el nombre de la cadena de conexión que se usa para conectarse a la base de datos.
  • La variable applicationName='string' es opcional y es la ruta de acceso virtual de la aplicación.
  • La variable enablePasswordReset=true habilita el restablecimiento de contraseñas mediante el método ResetPassword del proveedor. El valor predeterminado es false.
  • La variable enablePasswordRetrieval=true habilita la recuperación de contraseñas mediante el proveedor método GetPassword. El valor predeterminado es false.
  • La variable requiresQuestionAndAnswer=true requiere que se proporcione una respuesta de contraseña cuando el programa llame al proveedor GetPassword y los métodos ResetPassword. El valor predeterminado es false.
  • La variable requiresUniqueEmail=true requiere que cada usuario registrado tenga una dirección de correo electrónico única. El valor predeterminado es false.
  • La variable storePasswordInSecureFormat=true requiere que aplique hash a todas las contraseñas. El valor predeterminado es false.

Por ejemplo, para configurar una aplicación de ASP.NET de forma que utilice la clase SqlMembershipProvider para almacenar y recuperar información de usuarios, escriba lo siguiente en el símbolo del sistema y después presione ENTRAR:

appcmd set config /commit:MACHINE /section:membership /+"providers.[name='SqlProvider', type='System.Web.Security.SqlMembershipProvider', connectionStringName='SqlServices', applicationName='/', enablePasswordRetrieval='False', enablePasswordReset='True', requiresQuestionAndAnswer='True']"

Para agregar un proveedor de perfiles de .NET, use la sintaxis siguiente:

appcmd set config /commit:MACHINE /section:profile /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"

La variable name='string' es el nombre del proveedor. La variable type='string' es el tipo del proveedor. La variable connectionStringName='string' es el nombre de la cadena de conexión que se usa para conectarse a la base de datos. La variable applicationName='string' es opcional y es la ruta de acceso virtual de la aplicación. Por ejemplo, para configurar una aplicación de ASP.NET de forma que utilice la clase SqlProfileProvider para almacenar y recuperar información de perfil, escriba lo siguiente en el símbolo del sistema y después presione ENTRAR:

appcmd set config /commit:MACHINE /section:profile /+"providers.[name='SqlProvider', type='System.Web.Profile.SqlProfileProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"

3.3. Perfiles de .NET

En esta sección se describe cómo agregar una propiedad de perfil y un grupo de perfiles.

En Planificación y diseño de un sitio web ASP.NET en IIS, tomó las siguientes decisiones de diseño acerca de las propiedades y grupos de perfiles en IIS:

  • Para cada propiedad de perfil, proporcione el nombre de propiedad, el tipo de datos (como cadena o valor booleano), un valor predeterminado, una opción de serialización (cadena, XML, binario o específico del proveedor), e indique si es de solo lectura y si está disponible para los usuarios anónimos.
  • Para cada grupo de perfil, proporcione el nombre de grupo.

Agregar una propiedad de perfil de .NET mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.

  2. En Vista Características, haga doble clic en Perfil de .NET.

  3. En el panel Acciones, haga clic en Agregar propiedad para agregar una propiedad de perfil de .NET o, para agregar una propiedad de perfil de .NET a un grupo, seleccione el grupo al que desea agregar la propiedad de perfil de .NET y después haga clic en Agregar propiedad a grupo.

  4. En el cuadro de diálogo Agregar propiedad de perfil de .NET, escriba un nombre para la propiedad de perfil de .NET en el cuadro de texto Nombre.

  5. En Tipo de datos, seleccione uno de los tipos de datos siguientes:

    • System.Boolean: para configurar la propiedad de perfil de .NET de forma que tenga un valor True o False.
    • System.Char: para configurar la propiedad de perfil de .NET de forma que contenga caracteres Unicode.
    • System.DateTime: para configurar la propiedad de perfil de .NET de forma que contenga fechas y horas con valores comprendidos entre la medianoche 12:00:00 a. m. del 1 de enero de 0001 d. C. (A. D.) o la era común (e. c.) y las 11:59:59 p. m. del 31 de diciembre de 9999 d. C (A. D.) (e. c.)
    • System.Decimal: para configurar la propiedad de perfil de .NET de forma que contenga números decimales comprendidos entre +79 228 162 514 264 337 593 543 950 335 y -79 228 162 514 264 337 593 543 950 335. El tipo de valor Decimal es adecuado para los cálculos financieros que requieren muchos números enteros significativos y dígitos fraccionarios, y ningún error de redondeo.
    • System.Double: para configurar la propiedad de perfil de .NET de forma que contenga un número de 64 bits de precisión doble con valores comprendidos entre -1,79769313486232e308 y +1,79769313486232e308, así como cero positivo o negativo, PositiveInfinity, NegativeInfinity y NaN (no es un número). Para obtener más información sobre el tipo de valor de Double, vea Estructura de Double.
    • System.Int32: para configurar la propiedad de perfil de .NET de forma que contenga un entero con signo con un valor comprendido entre -2 147 483 648 y +2 147 483 647.
    • System.Int64: para configurar la propiedad de perfil de .NET de forma que contenga un número entero con un valor comprendido entre -9 223 372 036 854 775 808 y +9 223 372 036 854 775 807.
    • System.Single: para configurar la propiedad de perfil de .NET de forma que contenga un número de 32 bits de precisión simple con valores comprendidos entre -3,402823e38 y +3,402823e38, así como cero positivo o negativo, PositiveInfinity, NegativeInfinity y NaN (no es un número). Para obtener más información sobre el tipo de valor de Single, vea Estructura de single.
    • System.String: para configurar la propiedad de perfil de .NET para que sea una colección secuencial de estructuras Char que represente una cadena de texto. Esta es la configuración predeterminada.
  6. En el cuadro de texto Valor predeterminado, escriba el valor con el que se inicializará la propiedad.

  7. En Opción de serialización, seleccione uno de los formateadores de serialización siguientes:

    • Cadena: seleccione esta opción cuando la propiedad de configuración se serializa como texto simple. Esta es la configuración predeterminada.
    • XML: seleccione esta opción para serializar únicamente propiedades y campos públicos. La serialización XML no conserva la fidelidad de tipo. Esta opción es útil si desea proporcionar o usar los datos sin restringir la aplicación que los usa. Como XML es un estándar abierto, es una opción apropiada para compartir datos en Internet.
    • Binario: seleccione esta opción para conservar la fidelidad de tipo. La serialización binaria es útil para conservar el estado de un objeto entre las distintas invocaciones de una aplicación. Por ejemplo, puede compartir un objeto entre distintas aplicaciones si lo serializa en el Portapapeles. Puede serializar un objeto en un flujo, en un disco, en memoria, a través de la red, etc.
    • Específico del proveedor: seleccione esta opción cuando el proveedor de la configuración tenga conocimiento implícito de la propiedad o de su tipo, y pueda elegir un mecanismo de serialización adecuado. Esta opción se usa a menudo para la serialización personalizada.
  8. Active la casilla Solo lectura para configurar la propiedad de perfil de .NET de forma que no se pueda modificar.

  9. Active la casilla Disponible para usuarios anónimos para que la propiedad de perfil de .NET esté disponible para los usuarios no autenticados.

  10. Haga clic en OK.

Agregar una propiedad de perfil de .NET mediante la línea de comandos

Para agregar una propiedad de perfil de .NET, use la sintaxis siguiente:

appcmd set config /commit:MACHINE /section:profile /+"properties.[name='string', type='string', defaultValue='string', serializeAs='String|Xml|Binary|ProviderSpecific', readOnly='true|false', allowAnonymous='true|false']"

La variable name='string' es el nombre de la propiedad de perfil. La variable type='string' es el tipo de datos. La variable defaultValue='string' es el valor con el que se va a inicializar la propiedad de perfil. La variable serializeAs='String|Xml|Binary|ProviderSpecific' establece el formateador de serialización. La variable readOnly=true configura la propiedad de perfil de .NET para que no se pueda modificar. El valor predeterminado es false. La variable allowAnonymous=true  permite que la propiedad de perfil de .NET esté disponible para los usuarios no autenticados. El valor predeterminado es false. Por ejemplo, para especificar una propiedad de perfil que contenga una colección de listas de búsqueda recientes, escriba lo siguiente en el símbolo del sistema y después presione ENTRAR:

appcmd set config /commit:MACHINE /section:profile /+"properties. [name='RecentSearchList', type='System.Collections.Specialized.StringCollection', serializeAs='Xml', allowAnonymous='true']"

Agregar un grupo de perfiles de .NET mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.
  2. En Vista Características, haga doble clic en Perfil de .NET.
  3. En el panel Acciones, haga clic en Agregar grupo.
  4. En el cuadro de diálogo Agregar grupo, escriba un nombre para el grupo de perfiles de .NET en el cuadro de texto Nombre y después haga clic en Aceptar.

3.4. Roles de .NET

En esta sección se describe cómo agregar un rol de .NET mediante la interfaz de usuario del Administrador de IIS.

Agregar un rol de .NET mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.
  2. En Vista Características, haga doble clic en Roles de .NET.
  3. En el panel Acciones, haga clic en Agregar.
  4. En el cuadro de diálogo Agregar rol de .NET, escriba el nombre del rol en el cuadro de texto Nombre y después haga clic en Aceptar.

3.5. Usuarios de .NET

En esta sección se describe cómo configurar usuarios de .NET mediante la interfaz de usuario del Administrador de IIS.

En Planear un sitio web de ASP.NET en IIS, ha tomado las siguientes decisiones de diseño para cada usuario que desea agregar a IIS:

  • Nombre de usuario
  • Correo electrónico
  • Contraseña
  • Pregunta
  • Respuesta
  • Rol o roles

Agregar un usuario de .NET mediante la interfaz de usuario

  1. Abra Administrador de IIS y vaya al nivel que desea administrar.

  2. En Vista Características, haga doble clic en Usuarios de .NET.

  3. En el panel Acciones, haga clic en Agregar.

  4. En el cuadro de diálogo Detalles de cuenta de usuario de .NET, escriba la información siguiente:

    • Nombre de usuario (debe ser único).
    • Correo electrónico (debe usar el formato estándar: name@domain.com).
    • Contraseña (debe ser una contraseña segura).
    • Confirmar contraseña (debe coincidir con la contraseña).
    • Pregunta (escriba una pregunta personalizada o selecciónela de la lista).
    • Respuesta a la pregunta.
  5. Haga clic en Siguiente para seleccionar los roles de este usuario. Si no ha habilitado Roles de .NET, haga clic en Finalizar.

  6. En el cuadro de diálogo Roles de usuario de .NET, seleccione de forma opcional los roles disponibles en el cuadro Roles y después haga clic en Finalizar.