MessageSecurityOverHttp.NegotiateServiceCredential Propiedad

Definición

Obtiene o establece un valor que especifica si la credencial de servicio se proporciona en el cliente fuera de banda o se obtiene del servicio a través de un proceso de negociación.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

Valor de propiedad

Boolean

true si la credencial del servicio se obtiene a través de un proceso de negociación; de lo contrario, false.true if service credential is obtained through a process of negotiation; otherwise, false. De manera predeterminada, es true.The default is true.

Ejemplos

En el siguiente fragmento de código se muestra cómo acceder y establecer esta propiedad.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)

Comentarios

Al establecer esta propiedad en true, se exige que WS-Trust y WS-SecureConversation sean admitidos por el cliente y el servicio.Setting this property to true, requires WS-Trust and WS-SecureConversation to be supported by the client and the service. Estableciendo esta propiedad en false no se exige que WS-Trust y WS-SecureConversation sean admitidos.Setting this property to false does not require WS-Trust or WS-SecureConversation to be supported.

Para los tipos de credencial del cliente Anonymous, Username o Certificate, establecer esta propiedad en false implica que el certificado del servicio debe estar disponible para el cliente fuera de banda y que el cliente deba especificar qué certificado de servicio se debe usar.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.

En el caso de credenciales de Windows, establecer esta propiedad en false produce una autenticación basada en KerberosToken.In the case of Windows credentials, setting this property to false causes an authentication based on KerberosToken. Esto requiere que el cliente y el servicio formen parte de un dominio de Kerberos.This requires that the client and service be part of a Kerberos domain. Este modo es interoperable con pilas de SOAP que implementan el perfil de token de Kerberos desde OASIS.This mode is interoperable with SOAP stacks that implement the Kerberos token profile from OASIS. Al establecer esta propiedad en true, se produce una negociación SOAP que tuneliza el intercambio de SPNego mediante mensajes SOAP.Setting this property to true causes a SOAP negotiation that tunnels SPNego exchange over SOAP messages. Este modo no es interoperable.This mode is not interoperable.

Esta propiedad indica si la credencial de servicio se negocia automáticamente entre el cliente y el servicio.This property indicates whether the service credential is negotiated automatically between the client and the service. Si esta propiedad es true, la negociación se producirá después.If this property is true, then such negotiation occurs. Si esta propiedad es false, a continuación, las credenciales de servicio deben especificarse en el cliente antes de pueda producirse la comunicación con el servicio.If this property is false, then the service credentials must be specified at the client before communication with the service can occur.

Si esta propiedad está establecida en false y el enlace se configura para utilizar Windows como un tipo de credencial de cliente, la cuenta de servicio debe estar asociada a un nombre de entidad de seguridad de servicio (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). Para ello, ejecute el servicio bajo la cuenta de servicio de red o cuenta de sistema local.To do this, run the service under the NETWORK SERVICE account, or LOCAL SYSTEM account. Por otra parte, utilice la herramienta SetSpn.exe para crear un SPN para la cuenta de servicio.Alternatively, use the SetSpn.exe tool to create an SPN for the service account. En cualquier caso, el cliente debe utilizar el SPN correcto en el elemento < ServicePrincipalName > o mediante el EndpointAddress constructor.In either case, the client must use the correct SPN in the <servicePrincipalName> element, or by using the EndpointAddress constructor. Para obtener más información, consulte identidad de servicio y autenticación.For more information, see Service Identity and Authentication.

Se aplica a