Procedura: implementare l'accesso utente con i servizi dell'applicazione clientHow to: Implement User Login with Client Application Services

È possibile usare i servizi delle applicazioni client per convalidare gli utenti tramite un servizio profili Microsoft AjaxMicrosoft Ajax esistente.You can use client application services to validate users through an existing Microsoft AjaxMicrosoft Ajax profile service. Per informazioni su come configurare il servizio di profili Microsoft AjaxMicrosoft Ajax, vedere l'argomento relativo allUso dell'autenticazione basata su modulo con Microsoft Ajax.For information about how to set up the Microsoft AjaxMicrosoft Ajax profile service, see Using Forms Authentication with Microsoft Ajax.

Le procedure seguenti descrivono come convalidare gli utenti tramite il servizio di autenticazione quando l'applicazione è configurata per usare uno dei provider di servizi di autenticazione client.The following procedures describe how to validate users through the authentication service when your application is configured to use one of the client authentication service providers. Per altre informazioni, vedere Procedura: Configurare i servizi delle applicazioni client.For more information, see How to: Configure Client Application Services.

Tutte le convalide vengono in genere eseguite tramite il metodo static Membership.ValidateUser.You will typically perform all validation through the static Membership.ValidateUser method. Questo metodo gestisce l'interazione con il servizio di autenticazione tramite il provider di autenticazione configurato.This method manages the interaction with the authentication service through the configured authentication provider. Per altre informazioni, vedere Cenni preliminari sui servizi delle applicazioni client.For more information, see Client Application Services Overview.

Le procedure di autenticazione basate su modulo richiedono l'accesso a un servizio di autenticazione Microsoft AjaxMicrosoft Ajax in esecuzione.The forms authentication procedures require access to a running Microsoft AjaxMicrosoft Ajax authentication service. Per istruzioni sul test end-to-end delle funzionalità dei servizi dell'applicazione client, vedere Procedura dettagliata: Uso di servizi delle applicazioni client.For guidance on end-to-end testing of client application services features, see Walkthrough: Using Client Application Services.

Per autenticare un utente con autenticazione basata su form usando un provider di credenziali di appartenenzaTo authenticate a user with forms authentication using a membership credentials provider

  1. Implementare l'interfaccia IClientFormsAuthenticationCredentialsProvider.Implement the IClientFormsAuthenticationCredentialsProvider interface. L’esempio di codice seguente mostra un’implementazione IClientFormsAuthenticationCredentialsProvider.GetCredentials per una classe di una finestra di dialogo di accesso derivata da System.Windows.Forms.Form.The following code example shows a IClientFormsAuthenticationCredentialsProvider.GetCredentials implementation for a login dialog box class derived from System.Windows.Forms.Form. In questa finestra di dialogo vi sono caselle di testo per il nome utente e la password e una casella di controllo di memorizzazione dei dati.This dialog box has text boxes for user name and password and a "remember me" check box. Quando il provider di autenticazione client chiama il metodo GetCredentials, il form viene visualizzato.When the client authentication provider calls the GetCredentials method, the form is displayed. Quando l'utente inserisce le informazioni nella finestra di dialogo di accesso e fa clic su OK, vengono restituiti i valori specificati in un nuovo oggetto ClientFormsAuthenticationCredentials.When the user fills in the information in the login dialog box and clicks OK, the specified values are returned in a new ClientFormsAuthenticationCredentials object.

    public ClientFormsAuthenticationCredentials GetCredentials()
    {
        if (this.ShowDialog() == DialogResult.OK)
        {
            return new ClientFormsAuthenticationCredentials(
                usernameTextBox.Text, passwordTextBox.Text,
                rememberMeCheckBox.Checked);
        }
        else
        {
            return null;
        }
    }
    
    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
    
  2. Chiamare il metodo static Membership.ValidateUser e passare stringhe vuote come valori del parametro.Call the static Membership.ValidateUser method and pass in empty strings as the parameter values. Quando si specificano stringhe vuote, questo metodo chiama internamente il metodo GetCredentials per il provider di credenziali configurato per l'applicazione.When you specify empty strings, this method internally calls the GetCredentials method for the credentials provider configured for your application. Il codice di esempio seguente chiama questo metodo per limitare l’accesso a un’intera applicazione Windows Form.The following code example calls this method to restrict access to an entire Windows Forms application. È possibile aggiungere questo codice per un gestore Form.Load.You can add this code to a Form.Load handler.

    if (!System.Web.Security.Membership.ValidateUser(
        String.Empty, String.Empty))
    {
        MessageBox.Show("Unable to authenticate.", "Not logged in",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
        Application.Exit();
    }
    
    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
    

Per autenticare un utente con autenticazione basata su form senza usare un provider di credenziali di appartenenzaTo authenticate a user with forms authentication without using a membership credentials provider

  • Chiamare il metodo static Membership.ValidateUser e passare i valori di nome utente e password recuperati dall'utente.Call the static Membership.ValidateUser method and pass in user name and password values retrieved from the user.

    if (!System.Web.Security.Membership.ValidateUser(
        usernameTextBox.Text, passwordTextBox.Text))
    {
        MessageBox.Show("Unable to authenticate.", "Not logged in",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
        Application.Exit();
    }
    
    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
    

Per autenticare un utente con l’autenticazione di WindowsTo authenticate a user with Windows authentication

  • Chiamare il metodo static Membership.ValidateUser e passare stringhe vuote per i parametri.Call the static Membership.ValidateUser method and pass empty strings for the parameters. Questa chiamata al metodo restituirà sempre true e aggiungerà un cookie alla cache dei cookie dell'utente che contiene l'identità di Windows.This method call will always return true and will add a cookie to the user's cookie cache that contains the Windows identity.

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

Programmazione efficienteRobust Programming

Il codice di esempio in questo argomento illustra gli usi di autenticazione più semplici in un’applicazione client Windows.The example code in this topic demonstrates the simplest usages of authentication in a Windows client application. Quando si chiama il metodo static Membership.ValidateUser con i servizi delle applicazioni client e l’autenticazione basata su form, il codice può tuttavia generare un'eccezione WebException.When you call the static Membership.ValidateUser method with client application services and forms authentication, however, your code can throw a WebException. Ciò indica che il servizio di autenticazione non è disponibile.This indicates that the authentication service is unavailable. Per un esempio su come gestire questa eccezione, vedere Procedura dettagliata: Uso dei servizi delle applicazioni client.For an example of how to handle this exception, see Walkthrough: Using Client Application Services.

Vedere ancheSee Also

Servizi applicazioni clientClient Application Services
Cenni preliminari sui servizi delle applicazioni clientClient Application Services Overview
Procedura: Configurare i servizi delle applicazioni clientHow to: Configure Client Application Services
Procedura dettagliata: uso di servizi delle applicazioni clientWalkthrough: Using Client Application Services
Uso dell'autenticazione basata su form con Microsoft AjaxUsing Forms Authentication with Microsoft Ajax