none
Cenário de autenticação RRS feed

  • Pergunta

  • Olá,

    Tenho um winforms que hospeda um serviço com binding netTcpBinding.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
     <system.serviceModel>
      <services>
       <service name="Servicos.ServicoPrincipal">
        <host>
         <baseAddresses>
          <add baseAddress="net.tcp://localhost:9388" />
         </baseAddresses>
        </host>
        <endpoint address="srv" 
             binding="netTcpBinding"
             contract="Servicos.IServicoPrincipal" />
       </service>
      </services>
     </system.serviceModel>
    </configuration>

    Este é meu winforms
    private void FormInicial_Load(object sender, EventArgs e)
        {
          using (ServiceHost servicoPrincipal = new ServiceHost(typeof(ServicoPrincipal), new Uri[] { }))
          {
            servicoPrincipal.Open();
          } 
        }
    E este é o contrato
    [ServiceContract]
      public interface IServicoPrincipal
      {
        [OperationContract]
        void Imprimir(string impressora, string aImprimir);
        
      }
    Este é um cliente tentando conectar
    static void Main(string[] args)
        {
          string address = "net.tcp://meuEndereco:9388";
    
          using (ServiceHost host = new ServiceHost(typeof(ServicoPrincipal), new Uri[] { new Uri(address) }))
          {
            host.AddServiceEndpoint(typeof(IServicoPrincipal), new NetTcpBinding(), string.Empty);
            host.Open();
    
            using (ChannelFactory<IServicoPrincipal> srv =
              new ChannelFactory<IServicoPrincipal>(new NetTcpBinding(), new EndpointAddress(address)))
            {
              
              srv.CreateChannel().Imprimir("xpto", "xpto");
            }
          }
        }

    Só que estou tomando o erro
    The server has rejected the client credentials.

    Aí vem minha pergunta: As máquinas cliente e o servidor não estarão no mesmo domínio, como posso fazer para o cliente conseguir executar o método no wcf de uma forma segura ?

     

    Obrigado


    Alexandre Martins
    sexta-feira, 3 de dezembro de 2010 20:20

Respostas

Todas as Respostas