Compartilhar via


SecureConversationServiceCredential.SecurityStateEncoder Propriedade

Definição

Obtém ou define um SecurityStateEncoder personalizado para codificar e decodificar a serialização 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 da propriedade

SecurityStateEncoder

Um SecurityStateEncoder objeto, que é uma personalização de DataProtectionSecurityStateEncoder.

Exemplos

O código a seguir mostra como definir essa propriedade.

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);

Comentários

No "modo cookie", um serviço emite ao cliente um token de contexto de segurança (SCT) na forma de um cookie para o cliente para que ele não precise manter nenhum estado de segurança. O cliente envia o cookie de volta na mensagem de solicitação para que o serviço saiba como desproteger e verificar a mensagem de solicitação. Como o SCT geralmente é transmitido por uma rede não segura, ele deve ser protegido.

Por padrão, Windows Communication Foundation (WCF) usa a DataProtectionSecurityStateEncoder classe para proteger o cookie usando a API de Proteção de Dados (DPAPI). Para que o DPAPI funcione em um ambiente de farm da Web, todos os serviços de back-end devem ser executados como a mesma conta de usuário de domínio. Em outras palavras, se o serviço estiver hospedado na Web, o processo de trabalho do Serviços de Informações da Internet (IIS) deverá ser configurado para ser executado como um usuário de domínio.

Essa propriedade permite que você use um personalizado SecurityStateEncoder para criptografar e descriptografar o cookie e não depender do DPAPI.

Aplica-se a