MessageSecurityOverHttp.NegotiateServiceCredential Propriedade

Definição

Obtém ou define um valor que indica se a credencial de serviço é fornecida no cliente fora de banda ou obtida através 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 de Propriedade

true se a credencial de serviço for obtida através de um processo de negociação; caso contrário, false. A predefinição é true.

Exemplos

O código seguinte mostra como aceder e definir esta 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)

Observações

Definir esta propriedade como true, requer que WS-Trust e WS-SecureConversation sejam suportados pelo cliente e pelo serviço. Definir esta propriedade como false não requer que WS-Trust ou WS-SecureConversation seja suportado.

Para tipos de credenciais de cliente Anónimo, Nome de Utilizador ou Certificado, definir esta propriedade implica false 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 utilizar.

No caso de credenciais Windows, definir esta propriedade para false causa uma autenticação baseada em KerberosToken. Isto exige que o cliente e o serviço façam parte de um domínio Kerberos. Este modo é interoperável com stacks SOAP que implementam o perfil de token Kerberos do OASIS. Definir esta propriedade para true causar uma negociação SOAP que tunela a troca SPNego sobre mensagens SOAP. Este modo não é interoperável.

Esta propriedade indica se a credencial de serviço é negociada automaticamente entre o cliente e o serviço. Se esta propriedade for true, então tal negociação ocorre. Se esta propriedade for false, então as credenciais do serviço devem ser especificadas no cliente antes que a comunicação com o serviço possa ocorrer.

Se esta propriedade estiver definida para false, e a ligação estiver configurada para usar Windows como tipo de credencial de cliente, a conta de serviço deve estar associada a um Nome Principal de Serviço (SPN). Para isso, execute o serviço sob a conta SERVIÇO DE REDE, ou conta 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 e autenticação do serviço.

Aplica-se a