2010-10-13 2 views

Répondre

14

C'est ce que je suis venu avec, je ne sais pas si une partie du code n'est pas nécessaire:

hôte de service:

 ServiceHost host = new ServiceHost(concreteType); 
     var binding = new NetTcpBinding(SecurityMode.TransportWithMessageCredential, true); 
     binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; 
     host.AddServiceEndpoint(serviceType, binding, "net.tcp://someaddress:9000/" + name); 
     host.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new CustomUserNameValidator(); 
     host.Credentials.ServiceCertificate.Certificate = new X509Certificate2("mycertificate.p12", "password"); 
     host.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = 
      UserNamePasswordValidationMode.Custom; 

Et côté client:

 var binding = new NetTcpBinding(SecurityMode.TransportWithMessageCredential, true); 
     binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; 

     var factory = new ChannelFactory<ISwitchService>(binding, 
                 new EndpointAddress(
                  new Uri("net.tcp://someaddress:9000/switch"))); 
     factory.Credentials.UserName.UserName = "myUserName"; 
     factory.Credentials.UserName.Password = "myPassword"; 
+0

Merci pour une si belle réponse claire. Ça m'a beaucoup aidé. – Kelly

Questions connexes