MessageSecurityOverHttp.NegotiateServiceCredential Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.