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 personalizado SecurityStateEncoder para la codificación y descodificación de 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
En el código siguiente se 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 el "modo de cookies", un servicio emite al cliente un token de contexto de seguridad (SCT) en forma de cookie al cliente para que no tenga que mantener ningún 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, debe protegerse.
De forma predeterminada, Windows Communication Foundation (WCF) usa la clase DataProtectionSecurityStateEncoder 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 deben ejecutarse como la misma cuenta de usuario de dominio. Es decir, si el servicio está hospedado en web, el proceso de trabajo de Internet Information Services (IIS) debe configurarse para ejecutarse como usuario de dominio.
Esta propiedad le permite usar un personalizado SecurityStateEncoder para cifrar y descifrar la cookie y no depender de DPAPI.