Compartilhar via


Como: especificar o tipo de credencial de cliente

Depois de definir um modo de segurança (transporte ou mensagem), você tem a opção de definir o tipo de credencial do cliente. Essa propriedade especifica que tipo de credencial o cliente deve fornecer ao serviço para autenticação. Para obter mais informações sobre como definir o modo de segurança (uma etapa necessária antes de definir o tipo de credencial do cliente), consulte Como definir o modo de segurança.

Para definir o tipo de credencial do cliente no código

  1. Crie uma instância da associação que o serviço usará. Este exemplo usa a associação WSHttpBinding.

  2. Defina a propriedade Mode com um valor apropriado. Este exemplo usa o modo Mensagem.

  3. Defina a propriedade ClientCredentialType com um valor apropriado. Este exemplo o define para usar autenticação do Windows (Windows).

    ServiceHost myServiceHost = new ServiceHost(typeof(CalculatorService));
    // Create a binding to use.
    WSHttpBinding binding = new WSHttpBinding();
    binding.Security.Mode = SecurityMode.Message;
    binding.Security.Message.ClientCredentialType =
        MessageCredentialType.Windows;
    
    Dim myServiceHost As New ServiceHost(GetType(CalculatorService))
    ' Create a binding to use.
    Dim binding As New WSHttpBinding()
    binding.Security.Mode = SecurityMode.Message
    binding.Security.Message.ClientCredentialType = _
    MessageCredentialType.Windows
    

Para definir o tipo de credencial do cliente na configuração

  1. Adicione um elemento <system.serviceModel> ao arquivo de configuração.

  2. Como elemento filho, adicione um elemento <bindings>.

  3. Adicione uma associação apropriada. Este exemplo usa o elemento <wsHttpBinding>.

  4. Adicione um elemento <binding> de associação e defina o atributo name a um valor apropriado. Este exemplo usa o nome "SecureBinding".

  5. Adicione uma associação <security>. Defina o atributo mode como um valor apropriado. Este exemplo o define como "Message".

  6. Adicione um elemento <message> ou <transport>, conforme determinado pelo modo de segurança. Defina o atributo clientCredentialType como um valor apropriado. Este exemplo usa o "Windows".

    <system.serviceModel>  
      <bindings>  
        <wsHttpBinding>  
          <binding name="SecureBinding">  
            <security mode="Message">  
                 <message clientCredentialType="Windows" />  
             </security>  
          </binding>  
        </wsHttpBinding>  
      </bindings>  
    </system.serviceModel>  
    

Confira também