SecureConversationServiceCredential.SecurityStateEncoder Proprietà

Definizione

Ottiene o imposta un elemento SecurityStateEncoder personalizzato per la codifica e la decodifica della serializzazione del cookie.

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

Valore della proprietà

Oggetto SecurityStateEncoder che è una personalizzazione di DataProtectionSecurityStateEncoder.

Esempio

Nel codice seguente viene mostrato come impostare questa proprietà.

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

Commenti

In "modalità cookie" un servizio rilascia un token del contesto di sicurezza (SCT) sotto forma di cookie per il client, in modo da non dover gestire uno stato di sicurezza. Il client restituisce il cookie nel messaggio di richiesta in modo che il servizio sia in grado di rimuovere la sicurezza e verificare il messaggio di richiesta. Poiché l'SCT viene spesso trasmesso su una rete non sicura, deve essere protetto.

Per impostazione predefinita, Windows Communication Foundation (WCF) usa la DataProtectionSecurityStateEncoder classe per proteggere il cookie usando l'API Protezione dati (DPAPI). Affinché la DPAPI funzioni in ambiente Web farm, tutti i servizi di back-end devono essere in esecuzione con lo stesso account utente di dominio. In altre parole, se il servizio è ospitato sul Web, il processo di lavoro di Internet Information Services (IIS) deve essere configurato in modo da essere eseguito come utente del dominio.

Questa proprietà consente di utilizzare un oggetto SecurityStateEncoder personalizzato per crittografare e decrittografare il cookie senza dipendere dalla DPAPI.

Si applica a