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