41 votes

Activer SSL pour mon service WCF

J'ai un service WCF qui utilise basicHttpbinding en développement.

Maintenant, dans le produit que nous voulons utiliser SSL, quels changements dois-je apporter pour forcer uniquement les connexions SSL?

45voto

Stever B Points 2657

Cette page sur MSDN explique WCF obligatoires de Sécurité.

http://msdn.microsoft.com/en-us/library/ms729700.aspx

La classe est BasicHttpBinding principalement utilisé pour interagir avec services Web existants, et beaucoup de ces services sont hébergés par Internet Information Services (IIS). Par conséquent, la sécurité du transport pour cette liaison est conçu pour une interopérabilité transparente avec IIS sites. Ceci est fait en mettant l' mode de sécurité pour le Transport de et puis réglage de la client type d'informations d'identification. Le type d'informations d'identification des valeurs correspondent pour IIS annuaire des mécanismes de sécurité. Le code suivant illustre le mode de et le type d'informations d'identification défini pour Windows. Vous pouvez utiliser cette la configuration lorsque le client et le le serveur sont sur le même domaine Windows.

C#

BasicHttpBinding b = new BasicHttpBinding();
b.Security.Mode = BasicHttpSecurityMode.Transport ;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;

Ou, dans la configuration:

<bindings>   
   <basicHttpBinding>
            <binding name="SecurityByTransport">
               <security mode="Transport">
                 <transport clientCredentialType="Windows" />
                </security>
            </binding>   
   </basicHttpBinding> 
</bindings>

Pour activer ssl, sans connexion, ensemble clientCredentialType à "None".

Options pour le mode de sécurité sont:

Aucun, Transport, Message, TransportWithMessageCredential et TransportCredentialOnly

Vous pouvez trouver plus de détails au: http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpsecuritymode.aspx

1voto

Christoph Points 73

Je viens de faire face au même problème et de trouver cet article MSDN: Comment: configurer un service WCF hébergé par IIS avec SSL À la fin de cet article, vous trouverez la configuration xml du fichier WebConfig.

La solution a bien fonctionné pour moi. Une dernière chose à dire, gardez à l’esprit que vous avez besoin d’un certificat REAL pour votre libération!

0voto

Richard B Points 1106

Je pense que si vous aviez <Security mode="Transport"> sous vos "liaisons", si vous le changiez en <security mode="None"> , tout irait bien.

il s'agit d'une copie d'une base de code sur laquelle je travaille et dans laquelle j'ai intégré le code et qui semble fonctionner. Je reçois le WSDL au moins quand je frappe le service, si cela aide du tout :)

 BasicHttpBinding basicBinding = new BasicHttpBinding();
if (RegistryConnectionStringFactory.UseSslForCommunications)
{
     basicBinding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
     basicBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
}
else
{
     basicBinding.Security.Mode = BasicHttpSecurityMode.None;
     basicBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X