Información general sobre los servicios de aplicaciones cliente

Los servicios de aplicaciones cliente proporcionan acceso simplificado al inicio de sesión, los roles y los servicios de perfil de Microsoft Ajax procedentes de aplicaciones de Windows Forms y Windows Presentation Foundation (WPF). Los servicios de aplicaciones de Microsoft Ajax van incluidos en Microsoft ASP.NET 2.0 AJAX Extensions que, a su vez, se incluye en Visual Studio 2008 y .NET Framework versión 3.5. Estos servicios permiten que varias aplicaciones web y basadas en Windows compartan información sobre usuarios y la funcionalidad de administración de usuarios desde un único servidor.

Los servicios de aplicaciones cliente incluyen proveedores de servicios de cliente que se benefician del modelo de extensibilidad de los servicios Web para habilitar las siguientes características para las aplicaciones basadas en Windows:

  • Configuración de clientes simple Puede habilitar y configurar los servicios de inicio de sesión, funciones y perfiles mediante el diseñador de proyectos de Visual Studio o especificando los proveedores de servicios de cliente en el archivo App.config del proyecto. Para obtener más información, vea Cómo: Configurar servicios de aplicaciones cliente.

  • Capacidad de programación simple. Después de haber habilitado y configurado los servicios de aplicaciones cliente, puede tener acceso a los proveedores de servicios indirectamente a través de la pertenencia, funciones y clases de configuración de aplicaciones de .NET Framework 2.0 existentes. También puede obtener acceso directamente a las clases de .NET Framework versión 3.5 que implementan servicios de aplicaciones cliente. Sin embargo, en la mayoría de los casos, el acceso directo es innecesario. Para obtener más información sobre las clases de servicios de aplicaciones cliente, vea la sección "Clases de servicios de aplicaciones cliente" de este tema.

  • Compatibilidad con el funcionamiento sin conexión. Las aplicaciones basadas en Windows a menudo tienen que funcionar en entornos que se conectan ocasionalmente. Cuando la aplicación está en línea, los proveedores de servicios de cliente almacenan en la memoria caché los valores recuperados del servidor para usarlos cuando la aplicación esté sin conexión. Para obtener más información, vea Cómo: Trabajar sin conexión con servicios de aplicaciones cliente.

  • Integración con el diseñador de configuración de aplicaciones de Visual Studio. Al agregar configuraciones al proyecto en Visual Studio, puede especificar a qué configuraciones se va a tener acceso a través del proveedor de servicios de configuración de cliente.

En las secciones siguientes se describen estas características más detalladamente. Para obtener más información acerca del servicios de aplicaciones de Microsoft Ajax, vea Información general sobre los servicios de aplicación ASP.NET.

Autenticación

Puede utilizar servicios de aplicaciones cliente para validar un usuario a través de un servicio de autenticación de Microsoft Ajax existente. Puede validar un usuario utilizando la autenticación de formularios o de Windows. La autenticación de Windows significa que la identidad del usuario es la que proporciona el sistema operativo cuando un usuario inicia sesión en un equipo o dominio. Normalmente utilizará la autenticación de Windows con una aplicación implementada en una intranet corporativa. La autenticación de formularios significa que debe incluir controles de inicio de sesión en la aplicación y pasar las credenciales adquiridas al proveedor de autenticación. Normalmente utilizará la autenticación de formularios con una aplicación implementada en Internet.

Para validar un usuario, llame al método static Membership.ValidateUser. Este método obtiene acceso al proveedor de servicios de cliente configurado para la aplicación y devuelve un valor Boolean que indica si el usuario es válido. Para obtener más información, vea Cómo: Implementar el inicio de sesión de usuarios con servicios de aplicaciones cliente.

Al utilizar la autenticación de Windows, debe pasar cadenas vacías o cadenas null como los parámetros del método ValidateUser. Al utilizar la autenticación de Windows, esta llamada al método siempre devolverá true.

Con la autenticación de formularios, el método ValidateUser devolverá un valor que indica si el servicio remoto ha autenticado al usuario. Si la validación es correcta, se almacenará una cookie de autenticación en el disco duro local. Esta cookie se utiliza para confirmar la validación al tener acceso a las funciones y servicios de configuración.

Al utilizar la autenticación de formularios, puede pasar un nombre de usuario y una contraseña al método ValidateUser. También puede pasar cadenas vacías o cadenas null como los parámetros para utilizar un proveedor de credenciales. Un proveedor de credenciales es una clase que se proporciona y especifica en la configuración de la aplicación. Una clase de proveedor de credenciales debe implementar la interfaz IClientFormsAuthenticationCredentialsProvider, que tiene un método único denominado GetCredentials. El uso de un proveedor de credenciales permite compartir un cuadro de diálogo de inicio de sesión único entre varias aplicaciones. Para obtener más información, vea Cómo: Configurar servicios de aplicaciones cliente.

Al configurar la aplicación para que use un proveedor de credenciales con autenticación de formularios, debe pasar cadenas vacías o cadenas null como los parámetros del método ValidateUser. A continuación, el proveedor de servicios llamará a la implementación del método IClientFormsAuthenticationCredentialsProvider.GetCredentials. Normalmente, este método se implementará para mostrar un cuadro de diálogo y devolver un objeto ClientFormsAuthenticationCredentials rellenado.

Para obtener más información sobre la autenticación, vea Autenticación de ASP.NET. Para obtener información sobre cómo configurar el servicio de autenticación de Microsoft Ajax, vea Utilizar autenticación de formularios con Microsoft Ajax.

Funciones

Puede utilizar servicios de aplicaciones cliente para recuperar información de funciones de un servicio de funciones de Microsoft Ajax existente. Para determinar si el usuario autenticado actual está en una función determinada, llame al método IsInRole de la referencia IPrincipal recuperada de la propiedad static Thread.CurrentPrincipal. El método IsInRole toma el nombre de la función como un parámetro y devuelve un valor Boolean que indica si el usuario actual está en la función especificada. Este método devolverá false si el usuario no se autentica o no está en la función especificada,.

Para obtener más información, vea Cómo: Obtener acceso a las funciones de usuario con servicios de aplicaciones cliente. Para obtener información sobre cómo configurar el servicio de funciones de Microsoft Ajax, vea Utilizar información de roles con Microsoft Ajax.

Valores

Puede utilizar servicios de aplicaciones cliente para recuperar la configuración de aplicaciones de usuario de un servicio de perfil de Microsoft Ajax existente. La característica de configuración web de los servicios de aplicaciones cliente se integra con la característica de configuración de aplicaciones que ofrece .NET Framework 2.0. Para recuperar la configuración web, genere primero una clase Settings (a la que se obtiene acceso como Properties.Settings.Default en C# y My.Settings en Visual Basic) para el proyecto mediante la pestaña Configuración del diseñador de proyectos de Visual Studio. En la ficha Configuración, puede utilizar el botón Cargar configuración web para recuperar la configuración web y agregarla a la clase Settings generada. Puede utilizar la configuración web establecida para que la usen todos los usuarios autenticados o todos los usuarios anónimos.

Para obtener más información, vea Cómo: Obtener acceso a los valores de configuración de usuario con servicios de aplicaciones cliente. Para obtener más información sobre la configuración de aplicaciones, vea Introducción a la configuración de la aplicación. Para obtener información sobre cómo implementar su propia clase de configuración en lugar de generar una en Visual Studio, vea Cómo: Crear la configuración de la aplicación. Para obtener información sobre cómo configurar el servicio de perfil de Microsoft Ajax, vea Utilizar información de perfiles con Microsoft Ajax.

Clases de servicios de aplicaciones cliente

La tabla siguiente describe las clases que implementan la característica de servicios de aplicaciones cliente.

Las aplicaciones que utilizan sólo las características primarias de autenticación, funciones y configuración no es necesario que tengan acceso a estas clases directamente. En su lugar, dichas aplicaciones tendrán acceso a los proveedores de servicios de aplicaciones cliente indirectamente utilizando la configuración de aplicaciones y las API descritas en las secciones anteriores. Usted tendrá acceso directamente a estas clases para implementar características adicionales, como el cierre de sesión del usuario y la capacidad sin conexión.

Nota

Todas las API de servicios de aplicaciones cliente son sincrónicas. Los servicios de aplicaciones cliente no admiten directamente el comportamiento asincrónico.

Los proveedores de servicios de aplicaciones cliente implementan o amplían los tipos de .NET Framework 2.0estándar, pero no implementan cada característica y miembro definido por estos tipos. Por ejemplo, no puede utilizar los proveedores de servicios de aplicaciones cliente para implementar una aplicación de administración de usuarios para crear nuevos usuarios y administrar la pertenencia de funciones. Para implementar esta funcionalidad, debe utilizar actualmente una aplicación web y código de servidor. Para determinar qué miembros no se implementan, vea la documentación de referencia, a la que puede tener acceso a través de los vínculos de esta tabla.

Clase

Descripción

ClientFormsIdentity

Esta clase administra la identidad del usuario y las cookies de autenticación de la autenticación de formularios.

La razón primaria para tener acceso a esta clase directamente es llamar al método RevalidateUser, que vuelve a validar a un usuario silenciosamente (por ejemplo, al cambiar del modo sin conexión al modo en línea).

Una vez autenticado el usuario utilizando la autenticación de formularios, puede recuperar una instancia de esta clase a través de la propiedad Identity de la referencia IPrincipal recuperada a través de la propiedad static Thread.CurrentPrincipal.

ClientRolePrincipal

Esta clase administra las funciones de usuario.

Esta clase no tiene ningún miembro al que no se pueda tener acceso indirectamente. Sin embargo, una vez autenticado el usuario, puede tener acceso a una instancia de esta clase a través de la propiedad static Thread.CurrentPrincipal.

ConnectivityStatus

Esta clase proporciona la propiedad static IsOffline que se utiliza para conmutar la aplicación al modo sin conexión. Para obtener más información, vea Cómo: Trabajar sin conexión con servicios de aplicaciones cliente.

ClientFormsAuthenticationCredentials

Esta clase representa las credenciales de usuario.

Esta clase sólo se utilizará como el tipo de valor devuelto por el método GetCredentials al implementar la interfaz IClientFormsAuthenticationCredentialsProvider.

ClientFormsAuthenticationMembershipProvider

Esta clase administra el acceso al servicio de autenticación remoto para la autenticación de formularios.

La razón primaria para tener acceso a esta clase directamente es utilizar sus miembros Logout y UserValidated, que no implementa la clase MembershipProvider base. También puede establecer la ubicación del servicio mediante programación con la propiedad ServiceUri.

Puede recuperar una instancia de esta clase a través de la propiedad static Membership.Provider.

ClientWindowsAuthenticationMembershipProvider

Esta clase administra la autenticación de Windows.

La razón primaria para tener acceso a esta clase directamente es llamar a su método Logout. Después del cierre de sesión, el usuario todavía se autenticará para Windows, pero no podrá tener acceso a los servicios de la aplicación remota.

Puede recuperar una instancia de esta clase a través de la propiedad static Membership.Provider.

ClientRoleProvider

Esta clase administra el acceso al servicio de funciones remoto.

La razón primaria para tener acceso a esta clase es llamar a su método ResetCache. Esto puede ser útil si la aplicación está configurada para utilizar un valor de tiempo de espera para la caché de servicio de función distinto de cero. Para obtener más información, vea Cómo: Configurar servicios de aplicaciones cliente. También puede establecer la ubicación del servicio mediante programación con la propiedad ServiceUri.

Puede recuperar una instancia de esta clase a través de la propiedad static Roles.Provider.

ClientSettingsProvider

Esta clase administra el acceso al servicio de configuración web remoto.

La razón primaria para tener acceso a esta clase es administrar el evento SettingsSaved. También puede establecer la ubicación del servicio mediante programación con la propiedad ServiceUri.

IClientFormsAuthenticationCredentialsProvider

Esta interfaz proporciona un método indirecto para que la aplicación adquiera las credenciales de usuario para su validación, como se describió anteriormente en la sección Autenticación de este tema. Para obtener más información, vea Cómo: Configurar servicios de aplicaciones cliente.

SettingsSavedEventArgs

Esta clase proporciona una propiedad FailedSettingsList para usarla dentro de un controlador de eventos ClientSettingsProvider.SettingsSaved.

UserValidatedEventArgs

Esta clase proporciona una propiedad UserName para usarla dentro de un controlador de eventos UserValidated.

Vea también

Tareas

Cómo: Configurar servicios de aplicaciones cliente

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

Cómo: Obtener acceso a las funciones de usuario con servicios de aplicaciones cliente

Cómo: Obtener acceso a los valores de configuración de usuario con servicios de aplicaciones cliente

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

Tutorial: Usar servicios de aplicaciones cliente

Conceptos

Introducción a la configuración de la aplicación

Información general sobre los servicios de aplicación ASP.NET

Utilizar autenticación de formularios con Microsoft Ajax

Utilizar información de roles con Microsoft Ajax

Utilizar información de perfiles con Microsoft Ajax

Otros recursos

Servicios de aplicación cliente

Administrar la configuración de la aplicación

Autenticación de ASP.NET

Administrar autorizaciones con roles

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