Authentifizierung mithilfe des HTTP-Autorisierungsheaders in der WCF-SOAP-API

Derzeit verfügen wir über eine WCF - SOAP - API, mit der sich der Verbraucher mit einem Benutzernamen und einem Kennwort authentifizieren kann (verwendet intern aUserNamePasswordValidator) Als Referenz wird der Benutzername und das Passwort im SOAP-Body wie folgt übergeben:

<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" mustUnderstand="1">
<Timestamp Id="_0">
    <Created>
        2013-04-05T16:35:07.341Z</Created>
        <Expires>2013-04-05T16:40:07.341Z</Expires>
    </Timestamp>
    <o:UsernameToken Id="uuid-ac5ffd20-8137-4524-8ea9-3f4f55c0274c-12">
        <o:Username>someusername</o:Username>
        <o:Password o:Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">somepassword
    </o:Password>
</o:UsernameToken>
</o:Security>

Wir, wir mögen eszusätzlich Unterstützung eines Verbrauchers bei der Angabe von Anmeldeinformationen in derHTTP-Autorisierungsheader, entweder als Basic auth oder alsOAuth-Inhaber-Token

Wir haben bereits verschiedene Möglichkeiten, die Authentifizierung für Nicht-SOAP-APIs durchzuführen, aber ich bin nicht vertraut damit, wie WCF angewiesen wird, eine Klasse zu verwenden, die ich möglicherweise für diesen Zweck erstellt habe. Wie kann ich das erreichen? Die einzige andere Frage, die ich gesehen habe, die versucht, dies zu beantworten, istHierDie akzeptierte Antwort verwendet jedoch SOAP-Header, keine HTTP-Header, und der Fragesteller hat im Wesentlichen aufgegeben.

Natürlich muss jede Lösung abwärtskompatibel sein - wir müssen weiterhin Kunden unterstützen, die Anmeldeinformationen im SOAP-Sicherheitsheader angeben.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage