2010-10-13 14 views

risposta

14

Questo è quello che mi è venuta, non ho idea se una parte del codice non è richiesta:

ospite Servizio:

 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; 

e client side:

 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

Grazie per una risposta così bella e chiara. Mi ha aiutato un bel po ' – Kelly

Problemi correlati