Gewusst wie: Implementieren von Benutzeranmeldung und -abmeldung mit Clientanwendungsdiensten

Aktualisiert: November 2007

Sie können Clientanwendungsdienste verwenden, um Benutzer über einen vorhandenen ASP.NET AJAX-Profildienst zu überprüfen. Weitere Informationen zum Einrichten des ASP.NET AJAX-Profildiensts finden Sie unter Verwenden der Formularauthentifizierung mit ASP.NET-AJAX.

Im folgenden Verfahren wird beschrieben, wie Sie Benutzer über den Authentifizierungsdienst überprüfen, wenn die Anwendung für die Verwendung eines der Anbieter für Clientauthentifizierungsdienste konfiguriert wurde. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Clientanwendungsdiensten.

Normalerweise führen Sie die gesamte Validierung über die staticMembership.ValidateUser-Methode aus. Durch diese Methode wird die Interaktion mit dem Authentifizierungsdienst über den konfigurierten Authentifizierungsanbieter verwaltet. Weitere Informationen finden Sie unter Übersicht über Clientanwendungsdienste.

Die Schritte zur Formularauthentifizierung setzen voraus, dass auf einen aktiven ASP.NET AJAX-Authentifizierungsdienst zugegriffen werden kann. Anweisungen zu End-to-End-Testverfahren für Clientanwendungsdienst-Features finden Sie unter Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten.

So authentifizieren Sie einen Benutzer mithilfe der Formularauthentifizierung unter Verwendung eines Mitgliedschaftsinformationsanbieters

  1. Implementieren Sie die IClientFormsAuthenticationCredentialsProvider-Schnittstelle. Im folgenden Codebeispiel wird eine IClientFormsAuthenticationCredentialsProvider.GetCredentials-Implementierung für eine Anmeldedialogfeldklasse veranschaulicht, die von System.Windows.Forms.Form abgeleitet wurde. Dieses Dialogfeld enthält Textfelder für Benutzernamen und Kennwort sowie ein Kontrollkästchen für die Speicherung der Anmeldedaten. Wenn der Clientauthentifizierungsanbieter die GetCredentials-Methode aufruft, wird das Formular angezeigt. Wenn der Benutzer die Informationen in das Anmeldedialogfeld eingibt und auf OK klickt, werden die angegebenen Werte in einem neuen ClientFormsAuthenticationCredentials-Objekt zurückgegeben.

    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. Rufen Sie die static Membership.ValidateUser-Methode auf, und übergeben Sie leere Zeichenfolgen als Parameterwerte. Wenn Sie leere Zeichenfolgen angeben, ruft diese Methode die GetCredentials-Methode für den für die Anwendung konfigurierten Anmeldeinformationsanbieter intern auf. Im folgenden Codebeispiel wird diese Methode aufgerufen, um den Zugriff auf eine vollständige Windows Forms-Anwendung einzuschränken. Sie können diesen Code einem Form.Load-Handler hinzufügen.

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

So authentifizieren Sie einen Benutzer mithilfe der Formularauthentifizierung ohne Verwendung eines Mitgliedschaftsinformationsanbieters

  • Rufen Sie die static Membership.ValidateUser-Methode auf, und übergeben Sie die vom Benutzer abgerufenen Werte für Benutzernamen und Kennwort.

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

So authentifizieren Sie einen Benutzer mit Windows-Authentifizierung

  • Rufen Sie die static Membership.ValidateUser-Methode auf, und übergeben Sie leere Zeichenfolgen für die Parameter. Dieser Methodenaufruf gibt immer true zurück und fügt dem Cookiecache des Benutzers ein Cookie hinzu, das die Windows-Identität enthält.

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

Robuste Programmierung

Durch den Beispielcode in diesem Thema werden die einfachsten Verwendungsmöglichkeiten der Authentifizierung in einer Windows-Clientanwendung veranschaulicht. Wenn Sie die static Membership.ValidateUser-Methode mit Clientanwendungsdiensten und Formularauthentifizierung aufrufen, kann der Code jedoch eine WebException auslösen. Dadurch wird angegeben, dass der Authentifizierungsdienst nicht verfügbar ist. Ein Beispiel zur Behandlung dieser Ausnahme finden Sie unter Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von Clientanwendungsdiensten

Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten

Konzepte

Übersicht über Clientanwendungsdienste

Verwenden der Formularauthentifizierung mit ASP.NET-AJAX

Weitere Ressourcen

Clientanwendungsdienste