Condividi tramite


MessageSecurityOverHttp.NegotiateServiceCredential Proprietà

Definizione

Ottiene o imposta un valore che indica se viene eseguito il provisioning della credenziale del servizio al client fuori banda o se viene fornita 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à

Boolean

true se la credenziale del servizio viene ottenuta tramite un processo di negoziazione. In caso contrario false. Il valore predefinito è true.

Esempio

Nel codice seguente viene illustrato come accedere a questa proprietà e come impostarla.

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

Se questa proprietà viene impostata su true, è necessario che il client e il servizio supportino i protocolli WS-Trust e WS-SecureConversation. Se viene impostata su false, non è necessario il supporto di tali protocolli.

Per i tipi di credenziali client Anonymous, Username o Certificate, se questa proprietà viene impostata su false, il certificato del servizio deve essere disponibile sul client fuori banda e il client deve specificare il certificato del servizio da utilizzare.

Nel caso delle credenziali Windows, l'impostazione di questa proprietà su false comporta un'autenticazione basata su KerberosToken. Questo richiede che il client e il servizio facciano parte di un dominio Kerberos. Questa modalità è interoperativa con gli stack SOAP che implementano il profilo del token Kerberos di OASIS. Con l'impostazione di questa proprietà su true, si verifica una negoziazione SOAP che esegue il tunneling dello scambio SPNego su messaggi SOAP. Tale modalità non è interoperativa.

Questa proprietà indica se la credenziale del servizio viene negoziata automaticamente tra il client e il servizio. Se questa proprietà è true, la suddetta negoziazione ha luogo. Se invece questa proprietà è false, prima che la comunicazione con il servizio possa avere luogo è necessario specificare le credenziali del servizio nel client.

Se questa proprietà è impostata su false e l'associazione è configurata per utilizzare Windows come tipo di credenziale client, l'account del servizio deve essere associato a un nome principale di servizio (SPN). A tale scopo, eseguire il servizio sotto l'account Servizio di rete o sotto 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 il nome SPN corretto nell'elemento <servicePrincipalName> o usando il EndpointAddress costruttore . Per altre informazioni, vedere Identità del servizio e autenticazione.

Si applica a