Comment : configurer les services d'application cliente

Mise à jour : novembre 2007

Cette rubrique décrit comment utiliser le Concepteur de projets Visual Studio pour activer et configurer les services d'application cliente. Vous pouvez utiliser les services d'application cliente pour valider des utilisateurs et extraire des rôles d'utilisateur ainsi que des paramètres d'un service d'application ASP.NET AJAX existant. Après la configuration, vous pouvez accéder aux services actifs dans votre code d'application comme décrit dans Vue d'ensemble des services d'application cliente. Pour plus d'informations sur les services d'application ASP.NET AJAX, consultez Vue d'ensemble des services d'application ASP.NET.

Vous pouvez activer et configurer les services d'application cliente sur la page Services du Concepteur de projets. La page Services met à jour les valeurs dans le fichier App.config de votre projet. Pour accéder au Concepteur de projets, utilisez la commande Propriétés du menu Projet. Pour plus d'informations sur la page Services, consultez Services, page du Concepteur de projets. Pour plus d'informations sur le Concepteur de projets, consultez Introduction au Concepteur de projets.

La procédure suivante décrit comment exécuter la configuration de base des services d'application cliente. Les options de configuration avancées sont décrites dans les sections suivantes.

Pour configurer les services d'application cliente

  1. Dans l'Explorateur de solutions, sélectionnez un nœud de projet, puis dans le menu Projet, cliquez sur Propriétés.

    Le Concepteur de projets apparaît.

  2. Cliquez sur l'onglet Services. La page Services apparaît, comme dans l'illustration suivante.

    Onglet Services du concepteur de projets

  3. Sur la page Services, sélectionnez Activer les services d'application cliente.

  4. Sélectionnez Utiliser l'authentification par formulaire si vous prévoyez de fournir vos propres contrôles de connexion ou boîte de dialogue, ou sélectionnez Utiliser l'authentification Windows pour utiliser l'identité fournie par le système d'exploitation. Pour plus d'informations, consultez Vue d'ensemble des services d'application cliente.

    Remarque :

    Si vous sélectionnez Utiliser l'authentification Windows, les services d'application cliente sont automatiquement configurés pour utiliser une base de données SQL Server Compact Edition version 3.5. Cela est indiqué dans la boîte de dialogue Paramètres avancés pour les services, comme décrit dans la section suivante. Si vous sélectionnez ensuite Utiliser l'authentification par formulaire, le paramètre Utiliser une chaîne de connexion personnalisée n'est pas désactivé automatiquement. Cela peut provoquer des erreurs si la base de données SQL Server Compact 3.5 a déjà été générée pour une utilisation avec l'authentification Windows. Pour résoudre ces erreurs, désactivez l'option Utiliser une chaîne de connexion personnalisée dans la boîte de dialogue Paramètres avancés pour les services.

  5. Si vous avez sélectionné Utiliser l'authentification par formulaire, spécifiez l'URL de l'hôte de service sans le nom de fichier dans la zone Emplacement du service d'authentification. Le concepteur ajoute automatiquement le nom de fichier standard (Authentication_JSON_AppService.axd) lors de l'écriture de la valeur dans le fichier de configuration.

  6. Si vous avez sélectionné Utiliser l'authentification par formulaire, vous pouvez éventuellement spécifier une valeur dans la zone Fournisseur d'informations d'identification. Le fournisseur d'informations d'identification doit implémenter l'interface IClientFormsAuthenticationCredentialsProvider. En utilisant un fournisseur d'informations d'identification, vous pouvez séparer l'interface utilisateur de connexion de l'autre code d'application. Cela vous permet de créer une boîte de dialogue d'ouverture de session unique à utiliser dans plusieurs applications. Pour plus d'informations, consultez Comment : implémenter la connexion et la déconnexion utilisateur avec les services d'application cliente.

    Si vous spécifiez un fournisseur d'informations d'identification, vous devez le spécifier comme un nom de type qualifié d'assembly. Pour plus d'informations, consultez Type.AssemblyQualifiedName et Noms d'assemblys. Dans sa forme la plus simple, un nom de type qualifié d'assembly ressemble à l'exemple suivant :

    MyNamespace.MyLoginClass, MyAssembly
    
  7. Dans les zones de texte Emplacement des services de rôles et Emplacement des services de paramètres Web, spécifiez l'emplacement de chaque service, sans le nom de fichier. Le concepteur ajoute automatiquement les noms de fichier standard (Role_JSON_AppService.axd et Profile_JSON_AppService.axd) lorsqu'il écrit la valeur dans le fichier de configuration.

  8. Vous pouvez éventuellement cliquer sur Avancé pour modifier les paramètres avancés, tels que le comportement de mise en cache local. Pour plus d'informations, consultez la procédure suivante.

Configuration avancée

Les procédures suivantes décrivent comment configurer les services d'application cliente pour les scénarios moins courants. Par exemple, vous pouvez utiliser ces options de configuration pour les applications déployées dans les emplacements publics ou utiliser une base de données SQL Server Compact Edition version 3.5 chiffrée comme cache de données local.

Pour configurer les paramètres avancés des services d'application cliente

  1. Sur la page Services du Concepteur de projets, cliquez sur Avancé.

    La boîte de dialogue Paramètres avancés pour les services apparaît, comme dans l'illustration suivante. Pour plus d'informations sur cette boîte de dialogue, consultez Paramètres avancés pour les services, boîte de dialogue.

    Paramètres avancés pour la boîte de dialogue Services

  2. Activez ou désactivez l'option Enregistrer le hachage de mot de passe localement pour activer la connexion hors connexion. Lorsque vous activez cette option, un formulaire chiffré du mot de passe de l'utilisateur est inclus dans un cache local. Cela est utile si vous implémentez le mode hors connexion pour votre application. L'activation de cette option vous permet de valider des utilisateurs même lorsque la propriété IsOffline a la valeur true. Pour plus d'informations sur le mode hors connexion, consultez Comment : travailler hors connexion avec les services d'application cliente.

  3. Activez ou désactivez l'option Imposer aux utilisateurs de se reconnecter chaque fois que le cookie du serveur expire. Le cookie d'authentification est configuré sur le service distant et indique la durée de validité de la connexion d'un utilisateur. Pour plus d'informations sur la configuration du cookie, consultez l'attribut timeout dans forms, élément de authentication (Schéma des paramètres ASP.NET).

    Si vous sélectionnez cette option et tentez d'accéder aux rôles distants ou aux services de paramètres Web après expiration du cookie d'authentification, une WebException est levée. Vous pouvez gérer cette exception et afficher une boîte de dialogue d'ouverture de session pour revalider des utilisateurs. Pour obtenir un exemple de ce comportement, consultez Procédure pas à pas : utilisation des services d'application cliente. Cette option est utile pour les applications déployées dans les emplacements publics afin de garantir que les utilisateurs qui quittent l'application en cours d'exécution ne restent pas authentifiés indéfiniment.

    Si vous désactivez cette option et tentez d'accéder aux services distants après expiration du cookie d'authentification, les utilisateurs sont revalidés automatiquement.

  4. Spécifiez une valeur pour Dépassement du délai de cache du service de rôle. Choisissez une valeur peu élevée lorsque les rôles sont fréquemment mis à jour ou une valeur plus élevée lorsque les rôles sont rarement mis à jour. Si vous implémentez le mode hors connexion, affectez à l'intervalle de temps une valeur élevée pour empêcher l'expiration des informations de rôle lorsque l'application est hors connexion.

    Le fournisseur de rôles accède aux valeurs de rôle mises en cache ou au service de rôles lorsque vous appelez la méthode IsInRole. Pour réinitialiser le cache par programme et forcer cette méthode de manière à accéder au service distant, appelez la méthode ResetCache.

  5. Activez ou désactivez Utiliser une chaîne de connexion personnalisée. Pour plus d'informations, consultez la procédure suivante :

Pour configurer des services d'application cliente afin d'utiliser une base de données pour le cache local

  1. Sur la page Services du Concepteur de projets, cliquez sur Avancé.

    La boîte de dialogue Paramètres avancés pour les services s'affiche.

  2. Sélectionnez Utiliser une chaîne de connexion personnalisée.

    La valeur par défaut de Data Source = |SQL/CE| apparaît dans la zone de texte.

  3. Pour générer et utiliser une base de données SQL Server Compact Edition version 3.5, gardez la valeur de chaîne de connexion par défaut. Visual Studio générera un fichier de base de données et le placera dans le répertoire indiqué par la propriété Application.UserAppDataPath.

  4. Pour générer et utiliser une base de données SQL Server Compact 3.5 chiffrée, ajoutez les valeurs password et encrypt database à la chaîne de connexion comme indiqué dans l'exemple suivant.

    Remarque :

    Veillez à spécifier un mot de passe fort. Une fois la base de données générée, vous ne pouvez plus modifier le mot de passe.

    Data Source = |SQL/CE|;password=<password>;encrypt database=true
    
  5. Pour utiliser votre propre base de données SQL Server, spécifiez votre chaîne de connexion. Pour plus d'informations sur les formats de chaîne de connexion valides, consultez la documentation SQL Server. Cette base de données n'est pas générée automatiquement. La chaîne de connexion doit faire référence à une base de données existante que vous pouvez créer à l'aide des instructions SQL suivantes.

    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))
    

Utilisation de fournisseurs personnalisés

Par défaut, la fonctionnalité des services d'application cliente utilise les fournisseurs dans l'espace de noms System.Web.ClientServices.Providers. Lorsque vous configurez votre application à l'aide de la page Services du Concepteur de projets, les références à ces fournisseurs sont ajoutées à votre fichier App.config. Ces fournisseurs par défaut accèdent aux fournisseurs correspondants sur le serveur. Les services Web sont souvent configurés pour accéder aux données utilisateur via des fournisseurs tels que SqlMembershipProvider et SqlRoleProvider.

Si vous souhaitez utiliser des fournisseurs de services personnalisés, vous devez généralement modifier les fournisseurs côté serveur afin qu'ils affectent toutes les applications clientes accédant au serveur. Toutefois, vous avez la possibilité d'utiliser des fournisseurs non définis par défaut côté client. Vous pouvez spécifier des fournisseurs de rôles ou d'authentification personnalisés dans le fichier App.config de votre projet, comme indiqué dans la procédure suivante. Pour plus d'informations sur la création de fournisseurs de rôles et d'authentification personnalisés, consultez Implémentation d'un fournisseur d'appartenances et Implémentation d'un fournisseur de rôles. Vous pouvez également utiliser un fournisseur de paramètres personnalisé en modifiant la classe Settings de votre projet (accessible en tant que Properties.Settings.Default en C# et My.Settings en Visual Basic). Pour plus d'informations, consultez Architecture des paramètres d'application.

Pour configurer des services d'application cliente afin d'utiliser des fournisseurs non définis par défaut

  1. Pour utiliser un fournisseur de services de rôles ou d'authentification non défini par défaut, commencez par indiquer tous les autres paramètres de configuration en utilisant la page Services.

  2. Ouvrez le Concepteur de projets. Cela est nécessaire car la page Services mettra automatiquement à jour votre fichier App.config même si vous ne modifiez aucun paramètre. Si vous modifiez manuellement votre fichier App.config comme décrit dans cette procédure, puis revenez à la page Services, vos modifications sont réinitialisées.

  3. Double-cliquez sur App.config dans l'Explorateur de solutions.

    Le fichier de configuration de l'application s'ouvre dans l'éditeur de texte.

  4. Recherchez l'élément <providers> dans l'élément <membership> ou <roleManager>. Ces éléments sont des enfants de l'élément <system.web>. L'élément <membership> est utilisé pour spécifier des fournisseurs d'authentification et l'élément <roleManager> pour spécifier des fournisseurs de rôles.

  5. Ajoutez un élément <add> en tant qu'enfant de l'élément <providers>. Vous devez spécifier les attributs name et type comme indiqué dans l'exemple suivant. La valeur de l'attribut type doit être un nom de type qualifié d'assembly. Pour plus d'informations, consultez Type.AssemblyQualifiedName et Noms d'assemblys.

    <add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
    
  6. Modifiez l'attribut defaultProvider de l'élément <membership> ou <roleManager> pour spécifier la valeur de nom de l'élément <add> que vous avez ajouté dans l'étape précédente.

    <roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
    

Voir aussi

Tâches

Comment : implémenter la connexion et la déconnexion utilisateur avec les services d'application cliente

Comment : travailler hors connexion avec les services d'application cliente

Procédure pas à pas : utilisation des services d'application cliente

Concepts

Vue d'ensemble des services d'application cliente

Introduction au Concepteur de projets

Implémentation d'un fournisseur d'appartenances

Implémentation d'un fournisseur de rôles

Architecture des paramètres d'application

Référence

Services, page du Concepteur de projets

Paramètres avancés pour les services, boîte de dialogue

Autres ressources

Services d'application cliente

Création et configuration de la base de données des services d'application pour SQL Server