INTRODUCTION

Windows Communication Foundation (WCF) ne dispose pas de la fonctionnalité pour envoyer des messages sécurisés et puis recevoir des réponses non sécurisés ou pour envoyer des messages non sécurisés et de recevoir des réponses sécurisées. Le correctif qui est décrit dans cet article ajoute un nouvel attribut enableUnsecuredResponse . La valeur par défaut de l’attribut enableUnsecuredResponse a la valeur false. Si vous définissez la valeur de cet attribut à la valeur true, les nouvelles fonctionnalités suivantes sont activées dans WCF :

  • Les clients WCF peuvent accepter des réponses non sécurisées même si les messages sortants sont sécurisés à l’aide du protocole Secure Socket Layer (SSL) pour signer le corps du message.

  • Les services WCF peuvent envoyer des réponses sécurisées qui n’ont aucun en-tête de sécurité dans les enveloppes SOAP, même si la requête est sécurisée.

Remarque L’attribut enableUnsecuredResponse ne s’applique qu’uniquement pour le type de liaison CustomBinding .

Résolution

Si vous utilisez la version.NET Framework 3.0, installez le correctif qui est décrit dans l’article suivant de la base de connaissances Microsoft :

967105 correctif : un correctif qui permet à WCF d’envoyer des messages sécurisés et recevoir sécurisée des réponses et d’envoyer des messages non sécurisés et de recevoir des réponses sécurisées, n’est disponible pour.NET Framework 3.0Si vous utilisez le.NET Framework 3.5 Service Pack 1 sous Windows 7 ou Windows Server 2008 R2, installez le correctif qui est décrit dans l’article suivant de la base de connaissances Microsoft :

977420 un correctif cumulatif est disponible pour résoudre des problèmes dans Windows Communication Foundation dans.NET Framework 3.5 SP1 pour Windows 7 et Windows Server 2008 R2
Si vous utilisez le.NET Framework 3.5 Service Pack 1 sur d’autres systèmes d’exploitation, installez le correctif suivant pour résoudre le problème.

Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n’êtes pas sérieusement concerné par ce problème, nous vous recommandons d’attendre le prochain service pack qui comprendra ce correctif.

Pour résoudre ce problème immédiatement, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations sur les coûts de support, visitez le site Web de Microsoft à l’adresse suivante :

http://support.microsoft.com/contactus/?ws=supportRemarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.

Conditions préalables

Pour appliquer ce correctif, vous devez disposer le.NET Framework 3.5 Service Pack 1.

Nécessite un redémarrage

Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué ce correctif logiciel si aucune instance du.NET Framework n’est utilisé.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

Informations sur les fichiers pour toutes les versions basées sur les x86 de Windows Server 2003 et Windows XP

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

Servicemonikersupport.dll

3.0.4506.4119

17,240

01-juin-2009

22:56

x86

System.runtime.serialization.dll

3.0.4506.4119

970,752

01-juin-2009

22:56

x86

System.servicemodel.dll

3.0.4506.4119

5,931,008

01-juin-2009

22:56

x86

Informations sur les fichiers pour toutes les versions basées sur les x64 de Windows Server 2003 et Windows XP

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

Servicemonikersupport.dll

3.0.4506.4119

19,304

01-juin-2009

22:28

x64

System.runtime.serialization.dll

3.0.4506.4119

847,872

01-juin-2009

22:28

x64

System.servicemodel.dll

3.0.4506.4119

5,267,456

01-juin-2009

22:28

x64

Informations sur les fichiers pour toutes les versions basées sur les x86 de Windows Vista SP2 et de Windows Server 2008 SP2

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Servicemonikersupport.dll

3.0.4506.4120

17,240

10-Jun-2009

06:55

System.runtime.serialization.dll

3.0.4506.4120

970,752

10-Jun-2009

06:55

System.servicemodel.dll

3.0.4506.4120

5,935,104

10-Jun-2009

06:55

Informations sur les fichiers pour toutes les versions basées sur les x64 de Windows Vista SP2 et de Windows Server 2008 SP2

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

Servicemonikersupport.dll

3.0.4506.4120

19,288

10-Jun-2009

06:56

x64

System.runtime.serialization.dll

3.0.4506.4120

847,872

10-Jun-2009

06:56

x64

System.servicemodel.dll

3.0.4506.4120

5,271,552

10-Jun-2009

06:56

x64

Informations sur les fichiers pour toutes les versions Itanium et Windows Server 2008 SP2

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

Servicemonikersupport.dll

3.0.4506.4120

33,640

10-Jun-2009

06:56

IA-64

System.runtime.serialization.dll

3.0.4506.4120

847,872

10-Jun-2009

06:56

IA-64

System.servicemodel.dll

3.0.4506.4120

5,271,552

10-Jun-2009

06:56

IA-64

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

L’exemple de code suivant permet de tester l’attribut enableUnsecuredResponse :

Service

BindingElementCollection serviceBec = new BindingElementCollection();
SecurityBindingElement serviceSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
serviceSbe.EnableUnsecuredResponse = true;
serviceBec.Add(serviceSbe);
serviceBec.Add(new TextMessageEncodingBindingElement());
serviceBec.Add(new HttpTransportBindingElement());
Binding serviceBinding = new CustomBinding(serviceBec);

ServiceHost serviceHost = new ServiceHost(typeof(RequestReply));

serviceHost.Open();

Client

BindingElementCollection clientBec = new BindingElementCollection();
SecurityBindingElement clientSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
clientSbe.EnableUnsecuredResponse = true;
clientBec.Add(clientSbe);
clientBec.Add(new TextMessageEncodingBindingElement());
clientBec.Add(new HttpTransportBindingElement());
Binding clientBinding = new CustomBinding(clientBec);

IRequestReply channel = cf.CreateChannel();
try
{
channel.SendString("Hello");
cf.Close();
}

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×