Cómo: Implementar el inicio y cierre de sesión de usuarios con servicios de aplicaciones cliente
Actualización: noviembre 2007
Puede utilizar los servicios de aplicaciones cliente para validar usuarios a través de un servicio de perfil de ASP.NET AJAX existente. Para obtener información sobre cómo configurar el servicio de perfil de ASP.NET AJAX, vea Utilizar la autenticación de formularios con AJAX en ASP.NET.
Los siguientes procedimientos describen cómo validar usuarios a través del servicio de autenticación cuando la aplicación está configurada para utilizar uno de los proveedores de servicios de autenticación de cliente. Para obtener más información, vea Cómo: Configurar servicios de aplicaciones cliente.
Normalmente realizará toda la validación a través del método static Membership.ValidateUser. Este método administra la interacción con el servicio de autenticación a través del proveedor de autenticación configurado. Para obtener más información, vea Información general sobre los servicios de aplicaciones cliente.
Los procedimientos de autenticación de formularios requieren acceso a un servicio de autenticación de ASP.NET AJAX en ejecución. Para obtener orientación sobre pruebas de un extremo a otro de las características de los servicios de aplicaciones cliente, vea Tutorial: Usar servicios de aplicaciones cliente.
Para autenticar un usuario mediante la autenticación de formularios utilizando un proveedor de credenciales de pertenencia
Implemente la interfaz IClientFormsAuthenticationCredentialsProvider. En el ejemplo de código siguiente se muestra una implementación IClientFormsAuthenticationCredentialsProvider.GetCredentials de una clase de cuadro de diálogo de inicio de sesión derivada de System.Windows.Forms.Form. Este cuadro de diálogo tiene cuadros de texto para el nombre de usuario y la contraseña y una casilla "recordar cuenta". Cuando el proveedor de autenticación del cliente llama al método GetCredentials, se muestra el formulario. Cuando el usuario rellena la información en el cuadro de diálogo de inicio de sesión y hace clic en Aceptar, los valores especificados se devuelven en un nuevo objeto ClientFormsAuthenticationCredentials.
Public Function GetCredentials() As _ ClientFormsAuthenticationCredentials Implements _ IClientFormsAuthenticationCredentialsProvider.GetCredentials If Me.ShowDialog() = DialogResult.OK Then Return New ClientFormsAuthenticationCredentials( _ UsernameTextBox.Text, PasswordTextBox.Text, _ rememberMeCheckBox.Checked) Else Return Nothing End If End Function
public ClientFormsAuthenticationCredentials GetCredentials() { if (this.ShowDialog() == DialogResult.OK) { return new ClientFormsAuthenticationCredentials( usernameTextBox.Text, passwordTextBox.Text, rememberMeCheckBox.Checked); } else { return null; } }
Llame al método static Membership.ValidateUser y pase cadenas vacías como los valores de parámetro. Al especificar cadenas vacías, este método llama internamente al método GetCredentials del proveedor de credenciales configurado para la aplicación. El siguiente ejemplo de código llama a este método para restringir el acceso a una aplicación de formularios Windows Forms completa. Puede agregar este código a un controlador Form.Load.
If Not System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
Para autenticar un usuario mediante la autenticación de formularios sin utilizar un proveedor de credenciales de pertenencia
Llame al método static Membership.ValidateUser y pase los valores de nombre de usuario y contraseña recuperados del usuario.
If Not System.Web.Security.Membership.ValidateUser( _ usernameTextBox.Text, passwordTextBox.Text) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( usernameTextBox.Text, passwordTextBox.Text)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
Para autenticar a un usuario mediante la autenticación de Windows
Llame al método static Membership.ValidateUser y pase cadenas vacías para los parámetros. Esta llamada al método devuelve siempre true y agrega una cookie a la caché de cookies del usuario que contiene la identidad de Windows.
System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty)
System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty);
Programación eficaz
El código de ejemplo de este tema muestra los usos más simples de la autenticación en una aplicación cliente de Windows. Sin embargo, al llamar al método static Membership.ValidateUser con los servicios de aplicaciones cliente y la autenticación de formularios, el código puede iniciar una excepción WebException. Esto indica que el servicio de autenticación no está disponible. Para obtener un ejemplo de cómo administrar esta excepción, vea Tutorial: Usar servicios de aplicaciones cliente.
Vea también
Tareas
Cómo: Configurar servicios de aplicaciones cliente
Tutorial: Usar servicios de aplicaciones cliente
Conceptos
Información general sobre los servicios de aplicaciones cliente
Utilizar la autenticación de formularios con AJAX en ASP.NET