Cómo: Configurar servicios de aplicaciones cliente

En este tema se describe cómo utilizar el Diseñador de proyectos de Visual Studio para habilitar y configurar los servicios de aplicaciones cliente. Puede utilizar los servicios de aplicaciones cliente para validar usuarios y recuperar funciones de usuario y la configuración de un servicio de aplicaciones de Microsoft Ajax existente. Después de la configuración, puede tener acceso a los servicios habilitados en el código de aplicación tal como se describe en Información general sobre los servicios de aplicaciones cliente. Para obtener más información acerca de los servicios de aplicaciones de Microsoft Ajax, vea Información general sobre los servicios de aplicación ASP.NET.

Puede habilitar y configurar los servicios de aplicaciones cliente en la página Servicios del Diseñador de proyectos. La página Servicios actualiza los valores del archivo App.config del proyecto. Para tener acceso al Diseñador de proyectos, utilice el comando Propiedades del menú Proyecto. Para obtener más información acerca de la página Servicios, vea Página Servicios, Diseñador de proyectos. Para obtener más información sobre el Diseñador de proyectos, vea Introducción al Diseñador de proyectos.

El procedimiento siguiente describe cómo realizar la configuración básica de los servicios de aplicaciones cliente. Las opciones de configuración avanzadas se describen en secciones posteriores.

Para configurar los servicios de aplicaciones cliente

  1. En el Explorador de soluciones, seleccione un nodo de proyecto y, a continuación, en el menú Proyecto haga clic en Propiedades.

    Aparece el Diseñador de proyectos.

  2. Haga clic en la ficha Servicios. Aparece la página Servicios, tal como se muestra en la ilustración siguiente.

    Ficha Servicios en el diseñador de proyectos

  3. En la página Servicios, seleccione Habilitar servicios de aplicación cliente.

    Nota

    Los servicios de aplicaciones cliente necesitan la versión completa de .NET Framework y no se admiten en .NET Framework Client Profile. Si la casilla Habilitar servicios de aplicación cliente está desactivada, compruebe que Versión de .NET Framework de destino esté establecido en .NET Framework 3.5 o posterior. Para ver el valor de Versión de .NET Framework de destino en C#, abra el Diseñador de proyectos y, a continuación, haga clic en la página Aplicación. Para ver el valor de Versión de .NET Framework de destino en Visual Basic, abra el Diseñador de proyectos, haga clic en la página Compilar y, a continuación, haga clic en Opciones de compilación avanzadas.

  4. Seleccione Usar autenticación de formularios si piensa facilitar sus propios controles o cuadro de diálogo de inicio de sesión, o seleccione Utilizar autenticación de Windows para utilizar la identidad proporcionada por el sistema operativo. Para obtener más información, vea Información general sobre los servicios de aplicaciones cliente.

    Nota

    Si selecciona Utilizar autenticación de Windows, los servicios de aplicaciones cliente se configurarán automáticamente para usar una base de datos de SQL Server Compact Edition versión 3.5. Esto se indica en el cuadro de diálogo Configuración avanzada de servicios como se describe en la sección siguiente. Si, a continuación, selecciona Usar autenticación de formularios, la opción Usar cadena de conexión personalizada no se desactivará automáticamente. Esto podría producir errores si la base de datos de SQL Server Compact 3.5 ya se ha generado para usarla con la autenticación de Windows. Para corregir estos errores, desactive la opción Usar cadena de conexión personalizada en el cuadro de diálogo Configuración avanzada de servicios.

  5. Si seleccionó Usar autenticación de formularios, en el cuadro Ubicación del servicio de autenticación, especifique la dirección URL del host de servicio, sin incluir el nombre de archivo. El diseñador anexará automáticamente el nombre de archivo estándar (Authentication_JSON_AppService.axd) cuando escriba el valor en el archivo de configuración.

  6. Opcionalmente, si seleccionó Usar autenticación de formularios, puede especificar un valor en el cuadro Proveedor de credenciales. El proveedor de credenciales debe implementar la interfaz IClientFormsAuthenticationCredentialsProvider. Mediante un proveedor de credenciales, puede separar la interfaz de usuario de inicio de sesión del otro código de aplicación. Esto permite crear un cuadro de diálogo de inicio de sesión único para usarlo en varias aplicaciones. Para obtener más información, vea Cómo: Implementar el inicio de sesión de usuarios con servicios de aplicaciones cliente.

    Si especifica un proveedor de credenciales, debe especificarlo como un nombre de tipo calificado con el nombre de ensamblado. Para obtener más información, vea Type.AssemblyQualifiedName y Nombres de ensamblado. En su forma más simple, un nombre de tipo calificado con el nombre de ensamblado es similar al ejemplo siguiente:

    MyNamespace.MyLoginClass, MyAssembly
    
  7. En los cuadros de texto Ubicación del servicio de funciones y Ubicación del servicio de configuración web, especifique la ubicación de cada servicio, sin incluir el nombre de archivo. El diseñador anexará automáticamente los nombres de archivo estándar (Role_JSON_AppService.axd y Profile_JSON_AppService.axd) cuando escriba el valor en el archivo de configuración.

  8. Opcionalmente, haga clic en Avanzadas para modificar la configuración avanzada, por ejemplo el comportamiento del almacenamiento en caché local. Para obtener más información, vea el siguiente procedimiento.

Configuración avanzada

Los siguientes procedimientos describen cómo configurar los servicios de aplicaciones cliente para escenarios menos comunes. Por ejemplo, puede utilizar estas opciones de configuración para las aplicaciones implementadas en ubicaciones públicas, o utilizar una base de datos de SQL Server Compact Edition versión 3.5 cifrada como la caché de datos local.

Para establecer la configuración avanzada de los servicios de aplicaciones cliente

  1. En la página Servicios del Diseñador de proyectos, haga clic en Avanzadas.

    Aparecerá el cuadro de diálogo Configuración avanzada de servicios, tal como se muestra en la siguiente ilustración. Para obtener más información sobre este cuadro de diálogo, vea Configuración avanzada de servicios (Cuadro de diálogo).

    Cuadro de diálogo Configuración avanzada de servicios

  2. Seleccione o anule la selección de Guardar hash de contraseña para permitir el inicio de sesión sin conexión. Al seleccionar esta opción, un formulario cifrado de la contraseña del usuario se almacenará en caché localmente. Esto es útil si implementa el modo sin conexión para la aplicación. Con esta opción seleccionada, puede validar a los usuarios incluso si la propiedad IsOffline se ha establecido en true. Para obtener más información sobre el modo sin conexión, vea Cómo: Trabajar sin conexión con servicios de aplicaciones cliente.

  3. Seleccione o anule la selección de Exigir que los usuarios vuelvan a iniciar sesión cuando expire la cookie del servidor. La cookie de autenticación se configura en el servicio remoto e indica cuánto tiempo seguirá estando activo el inicio de sesión de un usuario. Para obtener más información sobre cómo configurar la cookie, vea el atributo timeout de Elemento forms para authentication (Esquema de configuración de ASP.NET).

    Si selecciona esta opción e intenta tener acceso a las funciones remotas o a los servicios de configuración web después de que la cookie de autenticación ha expirado, se iniciará una excepción WebException. Puede administrar esta excepción y mostrar un cuadro de diálogo de inicio de sesión para volver a validar a los usuarios. Para obtener un ejemplo de este comportamiento, vea Tutorial: Usar servicios de aplicaciones cliente. Esta opción resulta útil para las aplicaciones implementadas en ubicaciones públicas para asegurarse de que los usuarios que dejan la aplicación en ejecución después de usarla no permanezcan autenticados indefinidamente.

    Si anula la selección de esta opción e intenta tener acceso a los servicios remotos después de que la cookie de autenticación ha expirado, se volverá a validar a los usuarios automáticamente.

  4. Especifique un valor para Tiempo de espera de la caché del servicio de funciones. Establezca este intervalo de tiempo en un valor pequeño si las funciones se actualizan con frecuencia o a un valor mayor si las funciones se actualizan con poca frecuencia. Si implementa el modo sin conexión, establezca el intervalo de tiempo en un valor grande para evitar que la información de funciones expire mientras la aplicación está sin conexión.

    El proveedor de funciones obtiene acceso a los valores de función almacenados en caché o el servicio de funciones al llamar al método IsInRole. Para restablecer la caché mediante programación y hacer que este método tenga acceso al servicio remoto, llame al método ResetCache.

  5. Seleccione o anule la selección de Usar cadena de conexión personalizada. Para obtener más información, vea el siguiente procedimiento.

Para configurar los servicios de aplicaciones cliente para utilizar una base de datos para la caché local

  1. En la página Servicios del Diseñador de proyectos, haga clic en Avanzadas.

    Aparecerá el cuadro de diálogo Configuración avanzada de servicios.

  2. Seleccione Usar cadena de conexión personalizada.

    El valor predeterminado de Data Source = |SQL/CE| aparecerá en el cuadro de texto.

  3. Para generar y utilizar una base de datos de SQL Server Compact Edition versión 3.5, conserve el valor de cadena de conexión predeterminado. Visual Studio generará un archivo de base de datos y lo colocará en el directorio indicado por la propiedad Application.UserAppDataPath.

  4. Para generar y utilizar una base de datos de SQL Server Compact 3.5 cifrada, agregue los valores password y encrypt database a la cadena de conexión como se muestra en el ejemplo siguiente.

    Nota

    Asegúrese de que especifica una contraseña segura. No puede cambiar la contraseña una vez generada la base de datos.

    Data Source = |SQL/CE|;password=<password>;encrypt database=true
    
  5. Para utilizar su propia base de datos de SQL Server, especifique su propia cadena de conexión. Para obtener información sobre los formatos de cadena de conexión válidos, consulte la documentación de SQL Server. Esta base de datos no se genera automáticamente. La cadena de conexión debe hacer referencia a una base de datos existente que puede crear utilizando las siguientes instrucciones SQL.

    CREATE TABLE ApplicationProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE UserProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE Roles (UserName nvarchar(256), 
        RoleName nvarchar(256))
    CREATE TABLE Settings (PropertyName nvarchar(256), 
        PropertyStoredAs nvarchar(1), PropertyValue nvarchar(2048))
    

Usar proveedores personalizados

De forma predeterminada, la característica de los servicios de aplicaciones cliente usa los proveedores en el espacio de nombres System.Web.ClientServices.Providers. Al configurar la aplicación mediante la página Servicios del Diseñador de proyectos, se agregan referencias a estos proveedores en el archivo App.config. Estos proveedores predeterminados tienen acceso a los proveedores correspondientes en el servidor. Los servicios Web a menudo se configuran para tener acceso a los datos del usuario a través de proveedores como SqlMembershipProvider y SqlRoleProvider.

Si desea utilizar proveedores de servicios personalizados, normalmente cambiará los proveedores del lado del servidor para que afecten a todas las aplicaciones cliente que tienen acceso al servidor. Sin embargo, tiene la opción de utilizar proveedores no predeterminados en el lado del cliente. Puede especificar autenticaciones o proveedores de funciones personalizados en el archivo App.config del proyecto, como se muestra en el procedimiento siguiente. Para obtener información sobre cómo crear autenticaciones o proveedores de funciones personalizados, vea Implementar un proveedor de pertenencias e Implementar un proveedor de roles. También puede utilizar un proveedor de configuración personalizado modificando la clase Settings del proyecto (a la que se obtiene acceso como Properties.Settings.Default en C# y My.Settings en Visual Basic). Para obtener más información, vea Arquitectura de configuración de la aplicación.

Para configurar los servicios de aplicaciones cliente para que utilicen proveedores no predeterminados

  1. Para utilizar una autenticación o un proveedor de servicios de funciones no predeterminado, complete primero todas las demás opciones de configuración utilizando la página Servicios.

  2. Cierre el Diseñador de proyectos. Esto es necesario porque la página Servicios actualizará automáticamente el archivo App.config aun cuando no se modifique ningún valor. Si modifica manualmente el archivo App.config como se describe en este procedimiento y, a continuación, vuelve a la página Servicios, se restablecerán las modificaciones.

  3. En el Explorador de soluciones haga doble clic en app.config.

    El archivo de configuración de la aplicación se abrirá en el editor de texto.

  4. Busque el elemento <providers> dentro del elemento <membership> o <roleManager>. Estos elementos son secundarios del elemento <system.web>. El elemento <membership> se utiliza para especificar los proveedores de autenticación y el elemento <roleManager> se utiliza para especificar los proveedores de funciones.

  5. Agregue un elemento <add> como elemento secundario del elemento <providers>. Debe especificar los atributos name y type tal como se muestra en el ejemplo siguiente. El valor del atributo type debe ser un un nombre de tipo calificado con el nombre de ensamblado. Para obtener más información, vea Type.AssemblyQualifiedName y Nombres de ensamblado.

    <add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
    
  6. Modifique el atributo defaultProvider del elemento <membership> o <roleManager> para especificar el valor de nombre del elemento <add> que agregó en el paso anterior.

    <roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
    

Vea también

Tareas

Cómo: Implementar el inicio de sesión de usuarios con servicios de aplicaciones cliente

Cómo: Trabajar sin conexión con servicios de aplicaciones cliente

Tutorial: Usar servicios de aplicaciones cliente

Referencia

Página Servicios, Diseñador de proyectos

Configuración avanzada de servicios (Cuadro de diálogo)

Conceptos

Información general sobre los servicios de aplicaciones cliente

Introducción al Diseñador de proyectos

Implementar un proveedor de pertenencias

Implementar un proveedor de roles

Arquitectura de configuración de la aplicación

Otros recursos

Servicios de aplicación cliente

Crear y configurar la base de datos de servicios de la aplicación para SQL Server