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

Puede utilizar los servicios de aplicaciones cliente para validar usuarios a través de un servicio de perfil de Microsoft Ajax existente. Para obtener información sobre cómo configurar el servicio de perfil de Microsoft Ajax, vea Utilizar autenticación de formularios con Microsoft Ajax.

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 Microsoft 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

  1. 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;
        }
    }
    
  2. 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 autenticación de formularios con Microsoft Ajax

Otros recursos

Servicios de aplicación cliente