Übersicht über Clientanwendungsdienste

Clientanwendungsdienste ermöglichen den vereinfachten Zugriff auf Microsoft Ajax-Anmeldung, -Rollen und -Profildienste aus Windows Forms und Windows Presentation Foundation (WPF)-Anwendungen. Microsoft Ajax-Anwendungsdienste sind in den Microsoft ASP.NET 2.0 AJAX-Erweiterungen enthalten, die wiederum Bestandteil von Visual Studio 2008 und .NET Framework, Version 3.5 sind. Über diese Dienste können mehrere Web- und Windows-basierte Anwendungen Benutzerinformationen und Benutzerverwaltungsfunktionen auf einem einzelnen Server gemeinsam verwenden.

Clientanwendungsdienste umfassen Clientdienstanbieter, die in das Webdienst-Erweiterbarkeitsmodell integriert werden, um folgende Features für Windows-basierte Anwendungen zu aktivieren:

  • Einfache Clientkonfiguration. Sie können die Anmeldungs-, Rollen- und Profildienste aktivieren und konfigurieren, indem Sie den Visual Studio-Projekt-Designer verwenden oder indem Sie Clientdienstanbieter in der Datei App.config des Projekts angeben. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Clientanwendungsdiensten.

  • Einfache Programmierbarkeit. Nachdem Sie Clientanwendungsdienste aktiviert und konfiguriert haben, können Sie indirekt über vorhandene Klassen für .NET Framework 2.0-Mitgliedschaft, -Rollen und -Anwendungseinstellungen auf Dienstanbieter zugreifen. Sie können auch direkt auf die .NET Framework, Version 3.5-Klassen zugreifen, durch die Clientanwendungsdienste implementiert werden. In den meisten Fällen ist der direkte Zugriff nicht erforderlich. Weitere Informationen über Clientanwendungsdienst-Klassen finden Sie in diesem Thema im Abschnitt "Clientanwendungsdienst-Klassen".

  • Offlineunterstützung. Windows-basierte Anwendungen müssen häufig in gelegentlich verbundenen Umgebungen eingesetzt werden. Wenn die Anwendung online ist, werden die vom Server abgerufenen Werte von den Clientdienstanbietern zwischengespeichert und verwendet, sobald die Anwendung offline ist. Weitere Informationen finden Sie unter Gewusst wie: Offline arbeiten mit Clientanwendungsdiensten.

  • Integration mit dem Anwendungseinstellungs-Designer von Visual Studio. Wenn Sie Ihrem Projekt in Visual Studio Einstellungen hinzufügen, können Sie angeben, auf welche Einstellungen über den Clienteinstellungsdienst-Anbieter zugegriffen werden soll.

In den folgenden Abschnitten werden diese Features ausführlicher beschrieben. Weitere Informationen zu Microsoft Ajax-Anwendungsdiensten finden Sie unter Übersicht über die ASP.NET-Anwendungsdienste.

Authentifizierung

Sie können Clientanwendungsdienste verwenden, um einen Benutzer über einen vorhandenen Microsoft Ajax-Authentifizierungsdienst zu überprüfen. Sie können Benutzer mit Windows- oder Formularauthentifizierung überprüfen. Bei der Windows-Authentifizierung wird als Benutzeridentität die vom Betriebssystem angegebene Identität verwendet, sobald sich ein Benutzer bei einem Computer oder einer Domäne anmeldet. Die Windows-Authentifizierung wird normalerweise mit einer Anwendung verwendet, die in einem Firmenintranet bereitgestellt wird. Bei der Formularauthentifizierung müssen Sie Anmeldesteuerelemente in die Anwendung aufnehmen und die erforderlichen Anmeldeinformationen an den Authentifizierungsanbieter übergeben. Die Formularauthentifizierung wird normalerweise mit einer Anwendung verwendet, die im Internet bereitgestellt wird.

Um einen Benutzer zu überprüfen, rufen Sie die static Membership.ValidateUser-Methode auf. Durch diese Methode wird auf den für die Anwendung konfigurierten Clientdienstanbieter zugegriffen und ein Boolean-Wert zurückgegeben, der angibt, ob der Benutzer gültig ist. Weitere Informationen finden Sie unter Gewusst wie: Implementieren einer Benutzeranmeldung mit Clientanwendungsdiensten.

Bei Verwendung der Windows-Authentifizierung müssen Sie leere Zeichenfolgen oder null als Parameter der ValidateUser-Methode übergeben. Bei Verwendung der Windows-Authentifizierung gibt dieser Methodenaufruf immer true zurück.

Bei der Formularauthentifizierung gibt die ValidateUser-Methode einen Wert zurück, der angibt, ob der Benutzer vom Remotedienst authentifiziert wurde. Wenn die Validierung erfolgreich verläuft, wird ein Authentifizierungscookie auf der lokalen Festplatte gespeichert. Dieses Cookie wird verwendet, um beim Zugriff auf Rollen- und Einstellungsdienste die Validierung zu bestätigen.

Wenn Sie die Formularauthentifizierung verwenden, können Sie einen Benutzernamen und ein Kennwort an die ValidateUser-Methode übergeben. Sie können auch leere Zeichenfolgen oder null als Parameter übergeben, um einen Anmeldeinformationsanbieter zu verwenden. Ein Anmeldeinformationsanbieter ist eine Klasse, die Sie in der Anwendungskonfiguration bereitstellen und angeben. Eine Anmeldeinformationsanbieter-Klasse muss die IClientFormsAuthenticationCredentialsProvider-Schnittstelle implementieren, die über eine einzelne Methode mit dem Namen GetCredentials verfügt. Wenn Sie einen Anmeldeinformationsanbieter verwenden, können Sie ein einzelnes Anmeldedialogfeld für mehrere Anwendungen verwenden. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Clientanwendungsdiensten.

Wenn Sie eine Anwendung so konfigurieren, dass ein Anmeldeinformationsanbieter mit Formularauthentifizierung verwendet wird, müssen Sie leere Zeichenfolgen oder null als Parameter der ValidateUser-Methode übergeben. Der Dienstanbieter ruft daraufhin die IClientFormsAuthenticationCredentialsProvider.GetCredentials-Methodenimplementierung auf. Normalerweise implementieren Sie diese Methode, um ein Dialogfeld anzuzeigen und ein mit Daten gefülltes ClientFormsAuthenticationCredentials-Objekt zurückzugeben.

Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung in ASP.NET. Informationen über die Einrichtung des Microsoft Ajax-Authentifizierungsdiensts finden Sie unter Verwenden der Formularauthentifizierung mit Microsoft Ajax.

Rollen

Sie können Clientanwendungsdienste verwenden, um Rolleninformationen aus einem vorhandenen Microsoft Ajax-Rollendienst abzurufen. Um festzustellen, ob der aktuelle authentifizierte Benutzer über eine bestimmte Rolle verfügt, rufen Sie die IsInRole-Methode des aus der static Thread.CurrentPrincipal-Eigenschaft abgerufenen IPrincipal-Verweises ab. Die IsInRole-Methode akzeptiert den Rollennamen als Parameter und gibt einen Boolean-Wert zurück, der angibt, ob sich der aktuelle Benutzer in der angegebenen Rolle befindet. Diese Methode gibt false zurück, wenn der Benutzer nicht authentifiziert ist oder nicht über die angegebene Rolle verfügt.

Weitere Informationen finden Sie unter Gewusst wie: Zugreifen auf Benutzerrollen mit Clientanwendungsdiensten. Weitere Informationen zum Einrichten des Microsoft Ajax-Rollendiensts finden Sie unter Verwenden von Rolleninformationen mit Microsoft Ajax.

Einstellungen

Sie können Clientanwendungsdienste verwenden, um Benutzeranwendungseinstellungen aus einem vorhandenen Microsoft Ajax-Profildienst abzurufen. Die Webeinstellungsfunktion der Clientanwendungsdienste wird mit der in .NET Framework 2.0 bereitgestellten Funktion für Anwendungseinstellungen integriert. Um Webeinstellungen abzurufen, generieren Sie zuerst eine Settings-Klasse (auf die in C# als Properties.Settings.Default und in Visual Basic als My.Settings zugegriffen wird) für das Projekt, indem Sie die Registerkarte Einstellungen des Visual Studio-Projektdesigners verwenden. Auf der Registerkarte Einstellungen können Sie die Schaltfläche Webeinstellungen laden verwenden, um Webeinstellungen abzurufen und sie der generierten Settings-Klasse hinzuzufügen. Sie können Webeinstellungen verwenden, die für die Verwendung durch alle authentifizierten oder anonymen Benutzer konfiguriert sind.

Weitere Informationen finden Sie unter Gewusst wie: Zugreifen auf Benutzereinstellungen mit Clientanwendungsdiensten. Weitere Informationen über Anwendungseinstellungen finden Sie unter Übersicht über Anwendungseinstellungen. Informationen darüber, wie Sie eine eigene Einstellungsklasse implementieren, anstatt eine Klasse in Visual Studio zu generieren, finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen. Weitere Informationen zum Einrichten des Microsoft Ajax-Profildiensts finden Sie unter Verwenden von Profilinformationen mit Microsoft Ajax.

Clientanwendungsdienst-Klassen

In der folgenden Tabelle werden die Klassen beschrieben, durch die das Feature für Clientanwendungsdienste implementiert wird.

Anwendungen, die nur Features für primäre Authentifizierung, Rollen und Einstellungen verwenden, haben keinen direkten Zugriff auf diese Klassen. Stattdessen greifen diese Anwendungen indirekt auf Anbieter von Clientanwendungsdiensten zu, indem sie die Anwendungskonfiguration und die in den vorangehenden Abschnitten beschriebenen APIs verwenden. Sie greifen direkt auf diese Klassen zu, um zusätzliche Features wie Benutzerabmeldung und Offlinebetrieb zu implementieren.

Tipp

Alle Clientanwendungsdienst-APIs sind synchron. Clientanwendungsdienste bieten keine direkte Unterstützung für asynchrones Verhalten.

Durch Anbieter für Clientanwendungsdienste werden .NET Framework 2.0-Standardtypen implementiert oder erweitert, es wird jedoch nicht jeder Member bzw. jedes Feature implementiert, der bzw. das durch diese Typen definiert wurde. Beispielsweise können Sie keine Anbieter für Clientanwendungsdienste verwenden, um eine Benutzerverwaltungsanwendung zum Erstellen neuer Benutzer sowie zum Verwalten der Rollenmitgliedschaft zu implementieren. Um diese Funktionalität zu implementieren, müssen Sie aktuell eine Webanwendung und serverseitigen Code verwenden. Um festzustellen, welche Member nicht implementiert werden, informieren Sie sich in der Referenzdokumentation, auf die Sie über die in dieser Tabellen enthaltenen Links zugreifen können.

Klasse

Beschreibung

ClientFormsIdentity

Durch diese Klasse werden Benutzeridentität und Authentifizierungscookies für die Formularauthentifizierung verwaltet.

Der Hauptgrund für den direkten Zugriff auf diese Klasse besteht im Aufrufen der RevalidateUser-Methode, durch die ein Benutzer (beispielsweise beim Wechsel vom Offline- in den Onlinemodus) automatisch neu überprüft wird.

Nachdem der Benutzer unter Verwendung der Formularauthentifizierung authentifiziert wurde, können Sie über die Identity-Eigenschaft des IPrincipal-Verweises, der über die static Thread.CurrentPrincipal-Eigenschaft abgerufen wird, eine Instanz dieser Klasse abrufen.

ClientRolePrincipal

Durch diese Klasse werden die Benutzerrollen verwaltet.

Diese Klasse verfügt über keine Member, auf die nicht indirekt zugegriffen werden kann. Nachdem der Benutzer authentifiziert wurde, können Sie jedoch über die static Thread.CurrentPrincipal-Eigenschaft auf eine Instanz dieser Klasse zugreifen.

ConnectivityStatus

Durch diese Klasse wird die staticIsOffline-Eigenschaft bereitgestellt, mit der Sie die Anwendung in den Offlinemodus schalten. Weitere Informationen finden Sie unter Gewusst wie: Offline arbeiten mit Clientanwendungsdiensten.

ClientFormsAuthenticationCredentials

Durch diese Klasse werden Benutzeranmeldeinformationen dargestellt.

Sie verwenden diese Klasse nur als Rückgabewerttyp der GetCredentials-Methode, wenn Sie die IClientFormsAuthenticationCredentialsProvider-Schnittstelle implementieren.

ClientFormsAuthenticationMembershipProvider

Durch diese Klasse wird der Zugriff auf den Remoteauthentifizierungsdienst für die Formularauthentifizierung verwaltet.

Der Hauptgrund für den direkten Zugriff auf diese Klasse besteht in der Verwendung ihres Logout-Members und UserValidated-Members, die nicht durch die MembershipProvider-Basisklasse implementiert werden. Sie können den Dienstspeicherort auch programmgesteuert festlegen, indem Sie die ServiceUri-Eigenschaft verwenden.

Sie können eine Instanz dieser Klasse über die static Membership.Provider-Eigenschaft abrufen.

ClientWindowsAuthenticationMembershipProvider

Durch diese Klasse wird die Windows-Authentifizierung verwaltet.

Der Hauptgrund für den direkten Zugriff auf diese Klasse besteht im Aufrufen ihrer Logout-Methode. Nach der Abmeldung ist der Benutzer zwar weiterhin für Windows authentifiziert, kann jedoch nicht auf die Remoteanwendungsdienste zugreifen.

Sie können eine Instanz dieser Klasse über die static Membership.Provider-Eigenschaft abrufen.

ClientRoleProvider

Durch diese Klasse wird der Zugriff auf den Remoterollendienst verwaltet.

Der Hauptgrund für den Zugriff auf diese Klasse besteht im Aufrufen ihrer ResetCache-Methode. Dies kann hilfreich sein, wenn die Anwendung für die Verwendung eines Cachetimeoutwerts des Rollendiensts konfiguriert ist, der ungleich 0 (null) ist. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Clientanwendungsdiensten. Sie können den Dienstspeicherort auch programmgesteuert festlegen, indem Sie die ServiceUri-Eigenschaft verwenden.

Sie können eine Instanz dieser Klasse über die static Roles.Provider-Eigenschaft abrufen.

ClientSettingsProvider

Durch diese Klasse wird der Zugriff auf den Remote-Webeinstellungsdienst verwaltet.

Der Hauptgrund für den Zugriff auf diese Klasse besteht in der Behandlung des SettingsSaved-Ereignisses. Sie können den Dienstspeicherort auch programmgesteuert festlegen, indem Sie die ServiceUri-Eigenschaft verwenden.

IClientFormsAuthenticationCredentialsProvider

Diese Schnittstelle bietet der Anwendung eine indirekte Möglichkeit, Anmeldeinformationen für die Validierung abzurufen, wie oben in diesem Thema im Abschnitt zur Authentifizierung beschrieben. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Clientanwendungsdiensten.

SettingsSavedEventArgs

Diese Klasse stellt eine FailedSettingsList-Eigenschaft zur Verwendung innerhalb eines ClientSettingsProvider.SettingsSaved-Ereignishandlers bereit.

UserValidatedEventArgs

Diese Klasse stellt eine UserName-Eigenschaft zur Verwendung innerhalb eines UserValidated-Ereignishandlers bereit.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von Clientanwendungsdiensten

Gewusst wie: Implementieren einer Benutzeranmeldung mit Clientanwendungsdiensten

Gewusst wie: Zugreifen auf Benutzerrollen mit Clientanwendungsdiensten

Gewusst wie: Zugreifen auf Benutzereinstellungen mit Clientanwendungsdiensten

Gewusst wie: Offline arbeiten mit Clientanwendungsdiensten

Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten

Konzepte

Übersicht über Anwendungseinstellungen

Übersicht über die ASP.NET-Anwendungsdienste

Verwenden der Formularauthentifizierung mit Microsoft Ajax

Verwenden von Rolleninformationen mit Microsoft Ajax

Verwenden von Profilinformationen mit Microsoft Ajax

Weitere Ressourcen

Clientanwendungsdienste

Verwalten von Anwendungseinstellungen

Authentifizierung in ASP.NET

Verwalten der Autorisierung mithilfe von Rollen

Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server