2010-10-13 21 views

Respuesta

14

Esto es lo que me ocurrió, no tengo ni idea de si una parte del código no se requiere:

host del Servicio:

 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; 

Y del lado del cliente:

 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

Gracias para una respuesta tan clara y agradable. Me ayudó bastante. – Kelly

Cuestiones relacionadas