SecureConversationServiceCredential.SecurityStateEncoder Propriété

Définition

Obtient ou définit un SecurityStateEncoder personnalisé pour encoder et décoder la sérialisation de 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

Valeur de propriété

Objet SecurityStateEncoder qui est une personnalisation de DataProtectionSecurityStateEncoder.

Exemples

Le code suivant montre comment définir cette propriété.

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

Remarques

En « mode cookie », un service publie au client un jeton de contexte de sécurité (SCT) sous la forme d'un cookie au client afin qu'il n'ait à gérer aucun état de sécurité. Le client renvoie le cookie dans le message de demande afin que le service sache comment déprotéger et vérifier le message de demande. Comme le SCT est souvent transmis sur un réseau non sécurisé, il doit être protégé.

Par défaut, Windows Communication Foundation (WCF) utilise la DataProtectionSecurityStateEncoder classe pour protéger le cookie à l’aide de l’API de protection des données (DPAPI). Pour que DPAPI fonctionne dans un environnement de batterie de serveurs Web, tous les services principaux doivent s'exécuter comme même compte d'utilisateur de domaine. En d'autres termes, si le service est hébergé sur le Web, le processus de travail IIS (Internet Information Services) doit être configuré pour s'exécuter comme utilisateur de domaine.

Cette propriété vous permet d'utiliser un SecurityStateEncoder personnalisé pour chiffrer et déchiffrer le cookie et ne pas dépendre de DPAPI.

S’applique à