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.Gets or sets a value that indicates whether the service credential is provisioned at the client out of band or is obtained from the service through a process of negotiation.

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 la credenziale del servizio viene ottenuta tramite un processo di negoziazione. In caso contrario false.true if service credential is obtained through a process of negotiation; otherwise, false. Il valore predefinito è true.The default is true.

Esempi

Nel codice seguente viene illustrato come accedere a questa proprietà e come impostarla.The following code shows how to access and set this property.

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.Setting this property to true, requires WS-Trust and WS-SecureConversation to be supported by the client and the service. Se viene impostata su false, non è necessario il supporto di tali protocolli.Setting this property to false does not require WS-Trust or WS-SecureConversation to be supported.

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.For Anonymous, Username or Certificate client credential types, setting this property to false implies that the service certificate must be available at the client out of band and that the client must specify the service's certificate to use.

Nel caso delle credenziali Windows, l'impostazione di questa proprietà su false comporta un'autenticazione basata su KerberosToken.In the case of Windows credentials, setting this property to false causes an authentication based on KerberosToken. Questo richiede che il client e il servizio facciano parte di un dominio Kerberos.This requires that the client and service be part of a Kerberos domain. Questa modalità è interoperativa con gli stack SOAP che implementano il profilo del token Kerberos di OASIS.This mode is interoperable with SOAP stacks that implement the Kerberos token profile from OASIS. Con l'impostazione di questa proprietà su true, si verifica una negoziazione SOAP che esegue il tunneling dello scambio SPNego su messaggi SOAP.Setting this property to true causes a SOAP negotiation that tunnels SPNego exchange over SOAP messages. Tale modalità non è interoperativa.This mode is not interoperable.

Questa proprietà indica se la credenziale del servizio viene negoziata automaticamente tra il client e il servizio.This property indicates whether the service credential is negotiated automatically between the client and the service. Se questa proprietà è true, la suddetta negoziazione ha luogo.If this property is true, then such negotiation occurs. Se invece questa proprietà è false, prima che la comunicazione con il servizio possa avere luogo è necessario specificare le credenziali del servizio nel client.If this property is false, then the service credentials must be specified at the client before communication with the service can occur.

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).If this property is set to false, and the binding is configured to use Windows as a client credential type, the service account must be associated with a Service Principal Name (SPN). A tale scopo, eseguire il servizio sotto l'account Servizio di rete o sotto l'account di sistema locale.To do this, run the service under the NETWORK SERVICE account, or LOCAL SYSTEM account. In alternativa, utilizzare lo strumento SetSpn.exe per creare un SPN per l'account del servizio.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. In entrambi i casi, il client deve usare il nome SPN corretto nell'elemento <servicePrincipalName @ no__t-2 oppure tramite il costruttore EndpointAddress.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Per altre informazioni, vedere identità e autenticazione del servizio.For more information, see Service Identity and Authentication.

Si applica a