Webhttpbinding mit HTTPS und Authentifizierung mit BenutzernameppasswordValidator beim Hosting in IIS

StackOverflow https://stackoverflow.com/questions/6354787

  •  28-10-2019
  •  | 
  •  

Frage

Ich versuche, einen in IIS gehosteten WCF -Dienst einzurichten, der einen Endpunkt enthüllt, der als REST -Service fungiert und JSON -Daten produziert, und ich möchte HTTPS verwenden. Ich möchte mich mit Hilfe von BenutzernamepasswordValidator selbst um die Benutzerauthentifizierung kümmern, da die Benutzer in einer Datenbank gespeichert sind.

Im Moment benutze ich ein WebHTTPBinding, um die Rastlichkeit zu erreichen. Mein Problem beginnt, wenn ich versuche, HTTPS zu aktivieren (Sicherheitsmodus für den Transport). Ich habe ein SSL -Zertifikat auf der Serverseite (vorerst selbst signiert). Das ist also alles gut, aber ich weiß nicht, wie ich den Transport clientcredentialTyp der Bindung konfigurieren soll, damit die Anmeldeinformationen an meine Implementierung von usernamepasswordvalidator weitergegeben werden.

Ich habe viel gegoogelt, kann aber nichts Gutes finden. Wenn ich es richtig verstehe, behandelt IIS die Authentifizierung vor WCF und es gibt nichts zu tun? Ich würde es wirklich vorziehen, keinen ASP.NET -Mitgliedschaftsanbieter zu verwenden, aber vielleicht ist das ein Ansatz oder gibt es einen anderen Weg?

Vielen Dank!

Bearbeiten: gefunden Dies. Nicht wirklich das, worauf ich gehofft hatte ...

War es hilfreich?

Lösung 2

Nach viel Google -Around habe ich ein paar mögliche Lösungen gefunden.

Der empfohlene Weg Die Authentifizierung mit erholsamen WCF -Diensten, die in IIS gehostet werden, scheint die Verwendung von Token zu sein. Entweder mit Hilfe einer Drittanbieter -Implementierung von OAuth oder um etwas zu implementieren, das Sie haben selbst. Dies gibt mir jedoch einige Probleme mit meinem NettCP -Endpunkt, und ich kann wahrscheinlich nicht in der Lage sein, für beide Endpunkte dieselbe Implementierung zu verwenden (da ich eine Token -Validierung für Anrufe durchführen muss, die über den WebHTTP -Endpunkt kommen)

Die Lösung Das von Ladislav mrnka erteilte auch gültig zu sein.

Andere Tipps

Sie können nicht verwenden UserName Anmeldeinformationen - Das ist Authentifizierung der Nachrichtenebene durch SOAP -Header, aber der JSON -Datenaustausch hat keinen solchen Header. Versuchen Sie, einzustellen Basic Anmeldeinformationen im Transportelement (= Authentifizierung der Transportebene). Es sollte mit dem benutzerdefinierten Passwort -Validator seit .NET 3.5 funktionieren. Sie müssen den gültigen HTTP -Header für die grundlegende Authentifizierung übergeben, um sich erfolgreich zu authentifizieren.

Bearbeiten:

Ich habe es nicht mit IIS getestet, sodass es einige Probleme geben kann, da die IIS -Authentifizierung vor der Ausführung des benutzerdefinierten Validators ausgelöst wird. In diesem Fall brauchen Sie Benutzerdefiniertes HTTP -Modul zur Authentifizierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top