Freigeben über


SecureConversationServiceCredential.SecurityStateEncoder Eigenschaft

Definition

Ruft einen benutzerdefinierten SecurityStateEncoder zum Codieren und Decodieren der Cookieserialisierung ab oder legt diesen fest.

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

Eigenschaftswert

Ein SecurityStateEncoder-Objekt, das eine Anpassung von DataProtectionSecurityStateEncoder ist.

Beispiele

Der folgende Code zeigt, wie diese Eigenschaft festgelegt wird.

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

Hinweise

Im "Cookiemodus" gibt ein Dienst ein Sicherheitskontexttoken (SCT) in Form eines Cookies an den Client aus, sodass kein Sicherheitsstatus verwaltet werden muss. Der Client sendet das Cookie in der Anforderungsmeldung zurück, sodass der Dienst weiß, wie der Schutz der Anforderungsmeldung aufgehoben werden kann und wie die Meldung geprüft werden kann. Da das SCT oft über ein nicht sicheres Netzwerk gesendet wird, muss es geschützt werden.

Standardmäßig verwendet Windows Communication Foundation (WCF) die DataProtectionSecurityStateEncoder -Klasse, um das Cookie mithilfe der Datenschutz-API (DPAPI) zu schützen. Damit DPAPI in einer Webfarmumgebung funktioniert, müssen alle Backenddienste mit demselben Domänenbenutzerkonto ausgeführt werden. Anders ausgedrückt: bei einem WebHosted-Dienst muss der Internet Information Services (IIS)-Workerprozess so konfiguriert werden, dass er als Domänenbenutzer ausgeführt wird.

Mit dieser Eigenschaft können Sie einen angepassten SecurityStateEncoder zum Verschlüsseln und Entschlüsseln des Cookies verwenden und sind nicht auf DPAPI angewiesen.

Gilt für: