MessageSecurityOverHttp.NegotiateServiceCredential Proprietà

Definizione

Ottiene o imposta un valore che indica se viene effettuato il provisioning delle credenziali del servizio al client fuori banda o se viene ottenuto dal servizio tramite un processo di negoziazione.

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

Valore della proprietà

true se le credenziali del servizio vengono ottenute tramite un processo di negoziazione; in caso contrario, false. Il valore predefinito è true.

Esempio

Il codice seguente illustra come accedere e impostare questa proprietà.

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)

Commenti

Per impostare questa proprietà su true, è necessario che WS-Trust e WS-SecureConversation siano supportati dal client e dal servizio. L'impostazione di questa proprietà su false non richiede il supporto di WS-Trust o WS-SecureConversation.

Per i tipi di credenziali client Anonymous, Username o Certificate, l'impostazione di questa proprietà su false implica che il certificato del servizio deve essere disponibile al client fuori banda e che il client deve specificare il certificato del servizio da usare.

Nel caso di credenziali di Windows, l'impostazione di questa proprietà su false causa un'autenticazione basata su KerberosToken. Ciò richiede che il client e il servizio facciano parte di un dominio Kerberos. Questa modalità è interoperabile con gli stack SOAP che implementano il profilo del token Kerberos da OASIS. L'impostazione di questa proprietà su true provoca una negoziazione SOAP che esegue il tunneling dello scambio SPNego su messaggi SOAP. Questa modalità non è interoperativa.

Questa proprietà indica se la credenziale del servizio viene negoziata automaticamente tra il client e il servizio. Se questa proprietà è true, si verifica tale negoziazione. Se questa proprietà è false, è necessario specificare le credenziali del servizio nel client prima che possa verificarsi la comunicazione con il servizio.

Se questa proprietà è impostata su falsee l'associazione è configurata per l'uso di Windows come tipo di credenziale client, l'account del servizio deve essere associato a un nome dell'entità servizio (SPN). A tale scopo, eseguire il servizio con l'account NETWORK SERVICE o l'account DI SISTEMA LOCALE. In alternativa, utilizzare lo strumento SetSpn.exe per creare un SPN per l'account del servizio. In entrambi i casi, il client deve usare l'SPN corretto nell'elemento <servicePrincipalName> oppure usare il costruttore EndpointAddress. Per altre informazioni, vedere Identità del servizio e autenticazione.

Si applica a