Wie kann ich richtig das pass-System.Net.NetworkCredential-WCF-Client?

Ich habe derzeit client-Gerät, das den Benutzer auffordert, für user/pass, und erstellt ein System.Net.NetworkCredential übergeben wird, eine WCF Service. Diese WCF Service verwendet dann die Berechtigung auf einen anderen externen Dienst.

Das problem ist, dass wenn ich gehe durch die System.Net.NetworkCredential auf den Dienst, den es zu verlieren scheint das Passwort-Feld und so bekomme ich nie für die Authentifizierung bei externen Dienstleistern. Getestet hab ich nur auf der Durchreise in plain-text-strings als user/pass und es funktioniert, aber glauben, dass dies ist nicht gut für die Sicherheit (obwohl ich HTTPS aktiviert für den gesamten Datenverkehr zwischen den beiden Diensten).

Gibt es eine Möglichkeit zu geben diese Anmeldeinformationen an den service korrekt?

Hier ist etwas test-code auf der WCF service:

public string TestCred(System.Net.NetworkCredential c, string username, string pass)
{

    cred = c;
    userName = username;
    passWord = pass;
    string s = cred.UserName + cred.Password + "end";
    return s;

}

Habe ich es wieder, die saite zu testen, was tatsächlich erhielt auf der Service-Seite und das Passwort komplett leer ist (der username macht es dort ok).

Hier ist der code, den ich auf der WCF service zu Kontaktieren, der externe service:

externalService.Credentials =  new System.Net.NetworkCredential(cred.UserName, cred.Password, "domain");

Das funktioniert nicht, weil der cred.Passwort-Feld leer ist, auch das habe ich versucht:

externalService.Credentials = cred;

Denen auch nicht.

Wenn ich den plain-Saiten, obwohl es funktioniert Super:

externalService.Credentials =  new System.Net.NetworkCredential(userName, passWord, "domain");

Irgendwelche Vorschläge? Da die Verbindung zwischen dem client-Gerät-WCF-und Service-Externe Service sind alle HTTPS-SSL - erforderlich, es ist etwas sicherer, aber ich hatte nicht das Gefühl, große passing user/pass mit strings.

  • Diese Klasse(System.Net.NetworkCredential) nicht unterstützt public-key-basierte Authentifizierungs-Methoden wie Secure Sockets Layer (SSL) client-Authentifizierung
  • Geben Sie einfach die gleichen Anmeldeinformationen-Objekt. Warum sind Sie versuchen, eine neue zu erstellen? Das Passwort-Feld ist nicht zugänglich, aus offensichtlichen Gründen der Sicherheit.
  • NetworkCredentials absolut nichts zu tun hat mit transport-Verschlüsselung, wie SSL. Es ist die Klasse, die speichert Anmeldeinformationen verwendet werden, die von Bibliotheken aus welchem Grund auch immer. WCF unterstützt SSL
  • was versuchen Sie zu tun? Warum hat Ihr Kunde die übergabe von Anmeldeinformationen für den service? Dies ist ein sehr seltsames Szenario. Sind Sie versucht, die Identität der Kunden? Es gibt standard-basierte Möglichkeiten, dies zu tun, dass nicht mit Sicherheit zu brechen, die durch verschieben von Passwörtern um.
  • Check Identitätswechsel und Delegierung mit WCF und Wie: die Identität eines client für einen service
InformationsquelleAutor user3393394 | 2014-03-07
Schreibe einen Kommentar