Condividi tramite


Procedura: implementare l'accesso e la disconnessione utente con servizi delle applicazioni client

Aggiornamento: novembre 2007

È possibile utilizzare i servizi dell'applicazione client per convalidare gli utenti tramite un servizio profili ASP.NET AJAX esistente. Per informazioni sulla configurazione del servizio profili ASP.NET AJAX, vedere Utilizzo dell'autenticazione basata su form con ASP.NET AJAX.

Nelle procedure seguenti viene descritto come convalidare utenti tramite il servizio di autenticazione quando l'applicazione è configurata per utilizzare uno dei provider di servizi di autenticazione client. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client.

Generalmente le convalide vengono eseguite tramite il metodo static Membership.ValidateUser. Questo metodo gestisce l'interazione con il servizio di autenticazione tramite il provider di autenticazione configurato. Per ulteriori informazioni, vedere Cenni preliminari sui servizi delle applicazioni client.

Le procedure di autenticazione basate su form richiedono accesso a un servizio di autenticazione ASP.NET AJAX in esecuzione. Per istruzioni sul testing completo delle funzionalità dei servizi dell'applicazione client, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.

Per autenticare un utente con autenticazione basata su form utilizzando un provider di credenziali di appartenenza

  1. Implementare l'interfaccia IClientFormsAuthenticationCredentialsProvider. Nell'esempio di codice riportato di seguito viene illustrata un'implementazione IClientFormsAuthenticationCredentialsProvider.GetCredentials per una classe di finestre di dialogo di accesso derivata da System.Windows.Forms.Form. Questa finestra di dialogo include caselle di testo per il nome utente e la password e una casella di testo "memorizza password". Quando il provider di autenticazione del client chiama il metodo GetCredentials, viene visualizzato il form. Quando compila la finestra di dialogo di accesso e fa clic su OK, i valori specificati vengono restituiti in un nuovo oggetto 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. Chiamare il metodo staticMembership.ValidateUser e passare le stringhe vuote come valori del parametro. Quando si specificano stringhe vuote, questo metodo chiama internamente il metodo GetCredentials per il provider di credenziali configurate per l'applicazione. Nell'esempio di codice seguente viene chiamato questo metodo per limitare l'accesso a un'intera applicazione Windows Form. È possibile aggiungere questo codice a un gestore 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();
    }
    

Per autenticare un utente con autenticazione basata su form senza utilizzare un provider di credenziali di appartenenza

  • Chiamare il metodo staticMembership.ValidateUser e passare i valori del nome utente e della password recuperati dall'utente.

    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();
    }
    

Per autenticare un utente con autenticazione di Windows

  • Chiamare il metodo staticMembership.ValidateUser e passare le stringhe vuote per i parametri. Questa chiamata al metodo restituirà sempre true e aggiungerà un cookie alla cache del cookie dell'utente che contiene l'identità di Windows.

    System.Web.Security.Membership.ValidateUser( _
        String.Empty, String.Empty)
    
    System.Web.Security.Membership.ValidateUser(
        String.Empty, String.Empty);
    

Programmazione efficiente

Nel codice di esempio in questo argomento vengono illustrati i più semplici utilizzi dell'autenticazione in un'applicazione del client Windows. Quando si chiama il metodo staticMembership.ValidateUser con servizi dell'applicazione client e l'autenticazione basata su form, il codice può tuttavia generare un'eccezione WebException. Indica che il servizio di autenticazione non è disponibile. Per informazioni su come gestire questa eccezione, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.

Vedere anche

Attività

Procedura: configurare i servizi delle applicazioni client

Procedura dettagliata: utilizzo di servizi delle applicazioni client

Concetti

Cenni preliminari sui servizi delle applicazioni client

Utilizzo dell'autenticazione basata su form con ASP.NET AJAX

Altre risorse

Servizi applicazioni client