Cette documentation est archivée et n’est pas conservée.

Génération d'applications de partie de confiance WCF

Windows Identity Foundation

Activation de Windows Identity Foundation dans un service Web

WIF fournit une intégration facile à WCF. Un service WCF peut ainsi utiliser les fonctionnalités WIF, telles que le nouveau modèle de revendication, la prise en charge des types de jeton de sécurité supplémentaires (SAML 2.0) et la gestion des jetons. Cette section décrit comme procéder.

Pour activer Windows Identity Foundation dans un service WCF auto-hébergé

  1. Dans Visual Studio, ajoutez une référence à l'assembly WIF (Microsoft.IdentityModel.dll) au projet de service WCF.

  2. Ajoutez le code qui appelle la méthode ConfigureServiceHost et la passe à une instance d'hôte de service pour laquelle activer WIF. Vous devez effectuer cette opération avant d'appeler ServiceHost.Open() sur cette instance. Cette méthode apporte les modifications nécessaires aux paramètres d'instance ServiceHost pour intégrer les fonctionnalités WIF avec le pipeline de traitement du message WCF. L'exemple de code suivant indique comment procéder :


using (ServiceHost host = new ServiceHost(typeof(ClaimsAwareWebService), new Uri("http://localhost:6020/ClaimsAwareWebService"))) { // Configure WIF on the service host FederatedServiceCredentials.ConfigureServiceHost(host);

     host.Open();

     Console.WriteLine(“Service is ready, press ENTER to close ...”); Console.ReadLine();

     host.Close() }

Pour activer Windows Identity Foundation dans un service WCF hébergé sur le Web

  1. Dans Visual Studio, ajoutez une référence à l'assembly WIF (Microsoft.IdentityModel.dll) au projet de service WCF.

  2. Créez une classe qui hérite de ServiceHostFactory.

  3. Substituez la méthode CreateServiceHost. Dans l'implémentation, appelez tout d'abord base.CreateServiceHost( string, Uri[] ) pour créer l'instance ServiceHost. Exécutez ensuite une configuration par programme de l'instance ServiceHost requise pour votre application. Appelez ensuite ConfigureServiceHost pour activer des fonctions WIF sur cette instance ServiceHost. Enfin, retournez l'instance configurée comme valeur de retour de la méthode CreateServiceHost.

L'exemple de code suivant montre un ServiceHostFactory personnalisé qui active des fonctions WIF pour le ServiceHost créé :


public class MyServiceHostFactory : ServiceHostFactory { public override ServiceHostBase CreateServiceHost( string constructorString, Uri[] baseAddresses ) { ServiceHostBase host = base.CreateServiceHost( constructorString, baseAddresses ); FederatedServiceCredentials.ConfigureServiceHost( host ); return host; } }

Étant donné qu'une fabrique d'hôte de service personnalisée est utilisée pour activer des fonctions WIF dans le service WCF hébergé sur le Web, le fichier .svc utilisé pour représenter le point de terminaison de service WCF doit référencer cette fabrique à l'aide de l'attribut factory, comme indiqué ici :


<%@ServiceHost language=C# Factory="Service1.MyServiceHostFactory" Service="Service1.Service1"%>

Afficher: