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 indica si la credencial del servicio se aprovisiona 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 se obtiene la credencial del servicio a través de un proceso de negociación; de lo contrario, false. El valor predeterminado es true.
Ejemplos
En el código siguiente se muestra cómo acceder a esta propiedad y establecerla.
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
Establecer esta propiedad trueen , requiere que el cliente y el servicio admita WS-Trust y WS-SecureConversation. Establecer esta propiedad false en no requiere que se admita WS-Trust ni WS-SecureConversation.
Para los tipos de credenciales de cliente Anonymous, Username o Certificate, establezca esta propiedad en false implica que el certificado de servicio debe estar disponible en el cliente fuera de banda y que el cliente debe especificar el certificado del servicio que se va a usar.
En el caso de las credenciales de Windows, establecer esta propiedad en false provoca una autenticación basada en KerberosToken. Esto requiere que el cliente y el servicio formen parte de un dominio Kerberos. Este modo es interoperable con pilas SOAP que implementan el perfil de token kerberos de OASIS. Al establecer esta propiedad true en , se produce una negociación SOAP que tuneliza el intercambio de SPNego a través de mensajes SOAP. Este modo no es interoperable.
Esta propiedad indica si la credencial del servicio se negocia automáticamente entre el cliente y el servicio. Si esta propiedad es true, se produce dicha negociación. Si esta propiedad es false, las credenciales de servicio deben especificarse en el cliente antes de que se pueda producir la comunicación con el servicio.
Si esta propiedad se establece falseen y el enlace está configurado para usar 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 en la cuenta DE SERVICIO DE RED o en la cuenta DEL 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 utilizar el SPN correcto en el elemento <servicePrincipalName> o utilizar el constructor EndpointAddress. Para más información, consulte Identidad de servicio y autenticación.