Compartilhar via


MessageSecurityOverHttp.NegotiateServiceCredential Propriedade

Definição

Obtém ou define um valor que indica se a credencial de serviço é provisionada no cliente fora de banda ou é obtida no serviço por meio de um processo de negociação.

public:
 property bool NegotiateServiceCredential { bool get(); void set(bool value); };
public bool NegotiateServiceCredential { get; set; }
member this.NegotiateServiceCredential : bool with get, set
Public Property NegotiateServiceCredential As Boolean

Valor da propriedade

Boolean

true se a credencial de serviço for obtida por meio de um processo de negociação; caso contrário, false. O padrão é true.

Exemplos

O código a seguir mostra como acessar e definir essa propriedade.

WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType =
    MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = false;

CalculatorClient CalculatorClient = new CalculatorClient("myBinding");
CalculatorClient.ClientCredentials.ServiceCertificate.
    SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My);
Dim binding As New WSHttpBinding()
binding.Security.Mode = SecurityMode.Message
binding.Security.Message.ClientCredentialType = _
MessageCredentialType.UserName
binding.Security.Message.NegotiateServiceCredential = False

Dim CalculatorClient As New CalculatorClient("myBinding")
CalculatorClient.ClientCredentials.ServiceCertificate. _
    SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My)

Comentários

Definir essa propriedade como true, requer que WS-Trust e WS-SecureConversation sejam compatíveis com o cliente e o serviço. Definir essa propriedade false como não requer suporte a WS-Trust ou WS-SecureConversation.

Para tipos de credencial de cliente Anônimo, Nome de Usuário ou Certificado, definir essa propriedade false implica que o certificado de serviço deve estar disponível no cliente fora de banda e que o cliente deve especificar o certificado do serviço a ser usado.

No caso de Windows credenciais, definir essa propriedade para false causar uma autenticação com base em KerberosToken. Isso requer que o cliente e o serviço façam parte de um domínio Kerberos. Esse modo é interoperável com pilhas SOAP que implementam o perfil de token Kerberos do OASIS. Definir essa propriedade como true causa uma negociação SOAP que encapsula a troca de SPNego por mensagens SOAP. Esse modo não é interoperável.

Essa propriedade indica se a credencial de serviço é negociada automaticamente entre o cliente e o serviço. Se essa propriedade for true, essa negociação ocorrerá. Se essa propriedade for false, as credenciais de serviço deverão ser especificadas no cliente antes que a comunicação com o serviço possa ocorrer.

Se essa propriedade estiver definida como false, e a associação estiver configurada para usar Windows como um tipo de credencial de cliente, a conta de serviço deverá ser associada a um SPN (Nome da Entidade de Serviço). Para fazer isso, execute o serviço na conta NETWORK SERVICE ou na conta DO SISTEMA LOCAL. Como alternativa, use a ferramenta SetSpn.exe para criar um SPN para a conta de serviço. Em ambos os casos, o cliente deve usar o SPN correto no <elemento servicePrincipalName> ou usando o EndpointAddress construtor. Para obter mais informações, consulte Identidade de Serviço e Autenticação.

Aplica-se a