SecureConversationServiceCredential.SecurityStateEncoder 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 SecurityStateEncoder personalizado para codificar y descodificar la serialización de cookies.
public:
property System::ServiceModel::Security::SecurityStateEncoder ^ SecurityStateEncoder { System::ServiceModel::Security::SecurityStateEncoder ^ get(); void set(System::ServiceModel::Security::SecurityStateEncoder ^ value); };
public System.ServiceModel.Security.SecurityStateEncoder SecurityStateEncoder { get; set; }
member this.SecurityStateEncoder : System.ServiceModel.Security.SecurityStateEncoder with get, set
Public Property SecurityStateEncoder As SecurityStateEncoder
Valor de propiedad
Objeto SecurityStateEncoder, que es una personalización de DataProtectionSecurityStateEncoder.
Ejemplos
El código siguiente muestra cómo establecer esta propiedad.
static void Configure(ServiceHost serviceHost)
{
/*
* There are certain settings that cannot be configured via app.config.
* The security state encoder is one of them.
* Plug in a SecurityStateEncoder that uses the configured certificate
* to protect the security context token state.
*
* Note: You don't need a security state encoder for cookie mode. This was added to the
* sample to illustrate how you would plug in a custom security state encoder should
* your scenario require one.
* */
serviceHost.Credentials.SecureConversationAuthentication.SecurityStateEncoder =
new CertificateSecurityStateEncoder(serviceHost.Credentials.ServiceCertificate.Certificate);
Comentarios
En "modo de cookie", un servicio emite un token de contexto de seguridad (SCT) en forma de cookie para el cliente, para que no tenga que mantener cualquier estado de seguridad. El cliente devuelve la cookie en el mensaje de solicitud para que el servicio sepa cómo desproteger y comprobar el mensaje de solicitud. Dado que el SCT se transmite a menudo a través de una red no segura, se debe proteger.
De forma predeterminada, Windows Communication Foundation (WCF) usa la DataProtectionSecurityStateEncoder clase para proteger la cookie mediante la API de protección de datos (DPAPI). Para que DPAPI funcione en un entorno de granja de servidores web, todos los servicios back-end se deben ejecutar como la misma cuenta de usuario de dominio para DPAPI. En otras palabras, si el servicio está hospedado en web, el proceso de trabajo de Internet Information Services (IIS) se debe configurar para ejecutarse como usuario del dominio.
Esta propiedad le permite utilizar un SecurityStateEncoder personalizado para cifrar y descifrar la cookie, y no depender de DPAPI.