MessageSecurityOverHttp.NegotiateServiceCredential Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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
true
si la credencial del servicio se obtiene a través de un proceso de negociación; de lo contrario, false
. De manera predeterminada, es true
.
Ejemplos
En el siguiente fragmento de código se muestra cómo acceder y establecer esta propiedad.
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. Estableciendo esta propiedad en false
no se exige que WS-Trust y WS-SecureConversation sean admitidos.
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.
En el caso de credenciales de Windows, establecer esta propiedad en false
produce una autenticación basada en KerberosToken
. Esto requiere que el cliente y el servicio formen parte de un dominio de Kerberos. Este modo es interoperable con pilas de SOAP que implementan el perfil de token de Kerberos desde OASIS. Al establecer esta propiedad en true
, se produce una negociación SOAP que tuneliza el intercambio de SPNego mediante mensajes SOAP. Este modo no es interoperable.
Esta propiedad indica si la credencial de servicio se negocia automáticamente entre el cliente y el servicio. Si esta propiedad es true
, la negociación se producirá después. 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.
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). Para ello, ejecute el servicio bajo la cuenta de servicio de red o cuenta de sistema local. Por otra parte, utilice la herramienta SetSpn.exe para crear un SPN para la cuenta de servicio. En cualquier caso, el cliente debe usar el SPN correcto en el <elemento servicePrincipalName> o mediante el EndpointAddress constructor . Para más información, consulte Identidad de servicio y autenticación.