Gewusst wie: Konfigurieren von Clientanwendungsdiensten
In diesem Thema wird beschrieben, wie Sie mit dem Visual Studio-Projekt-Designer Clientanwendungsdienste aktivieren und konfigurieren. Mit den Clientanwendungsdiensten können Sie Benutzer überprüfen sowie Benutzerrollen und Einstellungen von einem vorhandenen Microsoft Ajax-Anwendungsdienst abrufen. Nach der Konfiguration können Sie auf die aktivierten Dienste im Anwendungscode zugreifen, wie in Übersicht über Clientanwendungsdienste beschrieben. Weitere Informationen zu Microsoft Ajax-Anwendungsdiensten finden Sie unter Übersicht über die ASP.NET-Anwendungsdienste.
Sie können Clientanwendungsdienste auf der Seite Dienste des Projekt-Designers aktivieren und konfigurieren. Über die Seite Dienste werden die Werte in der Datei App.config des Projekts aktualisiert. Um auf den Projekt-Designer zuzugreifen, verwenden Sie den Befehl Eigenschaften im Menü Projekt. Weitere Informationen zur Seite Dienste finden Sie unter Services-Seite, Projekt-Designer. Weitere Informationen zum Projekt-Designer finden Sie unter Einführung in den Projekt-Designer.
Im folgenden Verfahren wird beschrieben, wie Sie eine grundlegende Konfiguration für Clientanwendungsdienste ausführen. Erweiterte Konfigurationsoptionen werden in späteren Abschnitten beschrieben.
So konfigurieren Sie Clientanwendungsdienste
Wählen Sie im Projektmappen-Explorer einen Projektknoten aus, und klicken Sie dann im Menü Projekt auf Eigenschaften.
Der Projekt-Designer wird angezeigt.
Klicken Sie auf die Registerkarte Dienste. Die Seite Dienste wird wie in der folgenden Abbildung dargestellt angezeigt.
Wählen Sie auf der Seite Dienste die Option Clientanwendungsdienste aktivieren aus.
Tipp
Clientanwendungsdienste benötigen die Vollversion von .NET Framework und werden in .NET Framework Client Profile nicht unterstützt. Wenn das Kontrollkästchen Clientanwendungsdienste aktivieren deaktiviert ist, überprüfen Sie, ob Zielframework auf .NET Framework 3.5 oder höher festgelegt ist. Um die Einstellung Target framework in C# anzuzeigen, öffnen Sie den Projekt-Designer, und klicken Sie auf die Seite Anwendung. Um die Einstellung Zielframework in Visual Basic anzuzeigen, öffnen Sie den Projekt-Designer, klicken Sie auf die Seite Kompilieren, und klicken Sie auf Erweiterte Kompilierungsoptionen.
Wählen Sie Formularauthentifizierung verwenden, wenn Sie eigene Anmeldesteuerelemente oder ein eigenes Dialogfeld verwenden möchten, oder wählen Sie Windows-Authentifizierung verwenden aus, um die vom Betriebssystem bereitgestellte Identität zu verwenden. Weitere Informationen finden Sie unter Übersicht über Clientanwendungsdienste.
Tipp
Wenn Sie Windows-Authentifizierung verwenden auswählen, werden die Clientanwendungsdienste automatisch für die Verwendung einer SQL Server Compact Edition Version 3.5-Datenbank konfiguriert. Dies wird im Dialogfeld Erweiterte Einstellungen für Dienste angegeben, wie im nächsten Abschnitt beschrieben. Wenn Sie anschließend Formularauthentifizierung verwenden auswählen, wird die Einstellung Benutzerdefinierte Verbindungszeichenfolge verwenden nicht automatisch gelöscht. Dies kann zu Fehlern führen, wenn die SQL Server Compact 3.5-Datenbank bereits für die Verwendung mit der Windows-Authentifizierung generiert wurde. Um diese Fehler zu beheben, deaktivieren Sie die Einstellung Benutzerdefinierte Verbindungszeichenfolge verwenden im Dialogfeld Erweiterte Einstellungen für Dienste.
Wenn Sie im Dialogfeld Speicherort des Authentifizierungsdiensts die Option Formularauthentifizierung verwenden ausgewählt haben, geben Sie die URL des Diensthosts ohne den Dateinamen an. Der Designer fügt den Standarddateinamen (Authentication_JSON_AppService.axd) automatisch an, sobald der Wert in die Konfigurationsdatei geschrieben wird.
Wenn Sie Formularauthentifizierung verwenden ausgewählt haben, können Sie optional einen Wert in das Feld Anmeldeinformationsanbieter eingeben. Der Anmeldeinformationsanbieter muss die IClientFormsAuthenticationCredentialsProvider-Schnittstelle implementieren. Mit einem Anmeldeinformationsanbieter können Sie die Benutzeroberfläche für die Anmeldung vom übrigen Anwendungscode trennen. Dadurch können Sie ein einzelnes Anmeldungsdialogfeld erstellen, das in mehreren Anwendungen verwendet wird. Weitere Informationen finden Sie unter Gewusst wie: Implementieren einer Benutzeranmeldung mit Clientanwendungsdiensten.
Wenn Sie einen Anmeldeinformationsanbieter angeben, müssen Sie ihn als durch die Assembly qualifizierten Typnamen angeben. Weitere Informationen finden Sie unter Type.AssemblyQualifiedName und Assemblynamen. In seiner einfachsten Form sieht ein durch die Assembly qualifizierter Typname wie im folgenden Beispiel aus:
MyNamespace.MyLoginClass, MyAssembly
Geben Sie in den Textfeldern Speicherort des Rollendiensts und Speicherort des Webeinstellungdiensts den Dienstspeicherort jedes Diensts ohne den Dateinamen an. Der Designer fügt die Standarddateinamen (Role_JSON_AppService.axd und Profile_JSON_AppService.axd) automatisch an, sobald der Wert in die Konfigurationsdatei geschrieben wird.
Klicken Sie optional auf Erweitert, um erweiterte Einstellungen zu ändern, z. B. das Verhalten bei der lokalen Zwischenspeicherung. Weitere Informationen finden Sie im nächsten Verfahren.
Erweiterte Konfiguration
In den folgenden Verfahren wird beschrieben, wie Sie Clientanwendungsdienste für seltener vorkommende Szenarien konfigurieren. Sie können diese Konfigurationseinstellungen beispielsweise für Anwendungen verwenden, die an öffentlichen Speicherorten bereitgestellt werden, oder Sie verwenden eine verschlüsselte SQL Server Compact Edition Version 3.5-Datenbank als lokalen Datencache.
So konfigurieren Sie erweiterte Einstellungen für Clientanwendungsdienste
Klicken Sie auf der Seite Dienste des Projekt-Designers auf Erweitert.
Das Dialogfeld Erweiterte Einstellungen für Dienste wird angezeigt, wie in der folgenden Abbildung dargestellt. Weitere Informationen über dieses Dialogfeld finden Sie unter Dialogfeld "Erweiterte Einstellungen für Dienste".
Aktivieren oder deaktivieren Sie Kennworthash lokal speichern, um Offlineanmeldung zu ermöglichen. Wenn Sie diese Option aktivieren, wird das Benutzerkennwort in verschlüsselter Form lokal zwischengespeichert. Dies ist hilfreich, wenn Sie den Offlinemodus für die Anwendung implementieren. Wenn diese Option aktiviert ist, können Sie Benutzer überprüfen, auch wenn die IsOffline-Eigenschaft auf true festgelegt wurde. Weitere Informationen zum Offlinemodus finden Sie unter Gewusst wie: Offline arbeiten mit Clientanwendungsdiensten.
Aktivieren oder deaktivieren Sie Erneute Benutzeranmeldung bei Ablauf des Cookies anfordern. Das Authentifizierungscookie wird für den Remotedienst konfiguriert und gibt an, wie lange eine Benutzeranmeldung aktiv bleibt. Weitere Informationen zum Konfigurieren des Cookies finden Sie in den Ausführungen zum timeout-Attribut in forms-Element für Authentifizierung (ASP.NET-Einstellungsschema).
Wenn Sie diese Option auswählen, wird eine WebException ausgelöst, wenn Sie versuchen, nach Ablauf der Gültigkeit des Authentifizierungscookies auf die Remoterollen oder Webeinstellungsdienste zuzugreifen. Sie können diese Ausnahme behandeln und ein Anmeldedialogfeld anzeigen, um Benutzer erneut zu überprüfen. Ein Beispiel für dieses Verhalten finden Sie unter Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten. Diese Option ist hilfreich für Anwendungen, die an öffentlichen Speicherorten bereitgestellt werden, um sicherzustellen, dass Anwender, die die Anwendung nach Gebrauch aktiviert lassen, nicht unbegrenzt lange authentifiziert bleiben.
Wenn Sie diese Option deaktivieren und versuchen, nach Ablauf der Gültigkeit des Authentifizierungscookies auf die Remotedienste zuzugreifen, werden die Benutzer automatisch neu überprüft.
Geben Sie einen Wert für Cachetimeout des Rollendiensts an. Legen Sie dieses Zeitintervall auf einen kleinen Wert fest, wenn Rollen häufig aktualisiert werden, bzw. auf einen größeren Wert, wenn Rollen selten aktualisiert werden. Wenn Sie den Offlinemodus implementieren, legen Sie das Zeitintervall auf einen hohen Wert fest, um zu verhindern, dass die Gültigkeit von Rolleninformationen abläuft, während die Anwendung offline ist.
Der Rollenanbieter greift auf die zwischengespeicherten Rollenwerte oder den Rollendienst zu, wenn Sie die IsInRole-Methode aufrufen. Um den Cache programmgesteuert zurückzusetzen und den Zugriff auf den Remotedienst durch diese Methode zu erzwingen, rufen Sie die ResetCache-Methode auf.
Aktivieren oder deaktivieren Sie Benutzerdefinierte Verbindungszeichenfolge verwenden. Weitere Informationen finden Sie im nächsten Verfahren.
So konfigurieren Sie Clientanwendungsdienste für die Verwendung einer Datenbank für den lokalen Cache
Klicken Sie auf der Seite Dienste des Projekt-Designers auf Erweitert.
Das Dialogfeld Erweiterte Einstellungen für Dienste wird angezeigt.
Aktivieren Sie Benutzerdefinierte Verbindungszeichenfolge verwenden.
Der Standardwert von Data Source = |SQL/CE| wird im Textfeld angezeigt.
Um eine SQL Server Compact Edition Version 3.5-Datenbank zu generieren und zu verwenden, behalten Sie den Standardwert für die Verbindungszeichenfolge bei. Visual Studio generiert eine Datenbankdatei und legt sie in dem Verzeichnis ab, das von der Application.UserAppDataPath-Eigenschaft angegeben wird.
Um eine verschlüsselte SQL Server Compact 3.5-Datenbank zu generieren und zu verwenden, fügen Sie der Verbindungszeichenfolge, wie im folgenden Beispiel dargstellt, einen password-Wert und einen encrypt database-Wert hinzu.
Tipp
Achten Sie darauf, ein sicheres Kennwort zu verwenden. Das Kennwort kann nicht geändert werden, nachdem die Datenbank generiert wurde.
Data Source = |SQL/CE|;password=<password>;encrypt database=true
Um eine eigene SQL Server-Datenbank zu verwenden, geben Sie eine eigene Verbindungszeichenfolge an. Informationen über gültige Formate für Verbindungszeichenfolgen finden Sie in der SQL Server-Dokumentation. Diese Datenbank wird nicht automatisch generiert. Die Verbindungszeichenfolge muss auf eine vorhandene Datenbank verweisen, die Sie mithilfe der folgenden SQL-Anweisungen erstellen können.
CREATE TABLE ApplicationProperties (PropertyName nvarchar(256), PropertyValue nvarchar(256)) CREATE TABLE UserProperties (PropertyName nvarchar(256), PropertyValue nvarchar(256)) CREATE TABLE Roles (UserName nvarchar(256), RoleName nvarchar(256)) CREATE TABLE Settings (PropertyName nvarchar(256), PropertyStoredAs nvarchar(1), PropertyValue nvarchar(2048))
Verwenden benutzerdefinierter Anbieter
Das Feature für Clientanwendungsdienste verwendet standardmäßig die Anbieter im System.Web.ClientServices.Providers-Namespace. Wenn Sie die Anwendung mithilfe der Seite Dienste des Projekt-Designers konfigurieren, werden der Datei App.config Verweise auf diese Anbieter hinzugefügt. Diese Standardanbieter greifen auf entsprechende Anbieter auf dem Server zu. Webdienste werden häufig so konfiguriert, dass sie über Anbieter wie SqlMembershipProvider und SqlRoleProvider auf Benutzerdaten zugreifen.
Wenn Sie benutzerdefinierte Dienstanbieter verwenden möchten, ändern Sie normalerweise die Anbieter auf Serverseite, sodass sie für alle Clientanwendungen gelten, die auf den Server zugreifen. Es besteht jedoch auch die Möglichkeit, nicht standardmäßige Anbieter auf Clientseite zu verwenden. Sie können Anbieter für die benutzerdefinierte Authentifizierung oder Rollenanbieter in der Datei App.config des Projekts angeben, wie im folgenden Verfahren dargestellt. Weitere Informationen zum Erstellen von Anbietern für die benutzerdefinierte Authentifizierung und Rollenanbietern finden Sie unter Implementieren eines Mitgliedschaftsanbieters und Implementieren eines Rollenanbieters. Sie können auch einen benutzerdefinierten Einstellungsanbieter verwenden, indem Sie die Settings-Klasse des Projekts (auf die in C# als Properties.Settings.Default und in Visual Basic als My.Settings zugegriffen wird) ändern. Weitere Informationen finden Sie unter Architektur der Anwendungseinstellungen.
So konfigurieren Sie Clientanwendungsdienste für die Verwendung nicht standardmäßiger Anbieter
Um einen nicht standardmäßigen Authentifizierungs- oder Rollendienstanbieter zu verwenden, geben Sie zuerst alle übrigen Konfigurationseinstellungen auf der Seite Dienste an.
Schließen Sie den Projekt-Designer. Dies ist erforderlich, da die Seite Dienste die Datei App.config automatisch aktualisiert, auch wenn Sie keine Einstellungen ändern. Wenn Sie die Datei App.config, wie in diesem Verfahren beschrieben, manuell ändern und dann zur Seite Dienste zurückkehren, werden die Änderungen zurückgesetzt.
Doppelklicken Sie im Projektmappen-Explorer auf App.config.
Die Anwendungskonfigurationsdatei wird im Texteditor geöffnet.
Suchen Sie das <providers>-Element innerhalb des <membership>-Elements oder des <roleManager>-Elements. Diese Elemente sind untergeordnete Elemente des <system.web>-Elements. Mit dem <membership>-Element werden Authentifizierungsanbieter und mit dem <roleManager>-Element Rollenanbieter angegeben.
Fügen Sie ein <add>-Element als untergeordnetes Element des <providers>-Elements hinzu. Sie müssen das name-Attribut und das type-Attribut wie im folgenden Beispiel angeben. Der type-Attributwert muss ein durch die Assembly qualifizierter Typname sein. Weitere Informationen finden Sie unter Type.AssemblyQualifiedName und Assemblynamen.
<add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
Ändern Sie das defaultProvider-Attribut des <membership>-Elements oder des <roleManager>-Elements, um den Namenswert aus dem <add>-Element anzugeben, das Sie im vorherigen Schritt hinzugefügt haben.
<roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
Siehe auch
Aufgaben
Gewusst wie: Implementieren einer Benutzeranmeldung mit Clientanwendungsdiensten
Gewusst wie: Offline arbeiten mit Clientanwendungsdiensten
Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten
Referenz
Services-Seite, Projekt-Designer
Dialogfeld "Erweiterte Einstellungen für Dienste"
Konzepte
Übersicht über Clientanwendungsdienste
Einführung in den Projekt-Designer
Implementieren eines Mitgliedschaftsanbieters
Implementieren eines Rollenanbieters
Architektur der Anwendungseinstellungen
Weitere Ressourcen
Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server