Frage

Szenario:

  • Ein Client ruft WebService A im LAN. WebService A ist mit Identität "Network Service" unter einem App-Pool ausgeführt wird.
  • WebService A hat einige Arbeit bereitet WebService B zu nennen.
  • WebService B erfordert ein Client-Zertifikat (* .cer) und SSL.
  • WebService A ist auf einem dedizierten Windows 2003 Server.
  • funktioniert alles in der Umgebung Dev wie es sein soll (aber der Entwickler mit Administratorrechten immer lokal (keine Überraschung angemeldet ist!).
  • Die Zertifikate gespeichert sind, auf der Festplatte bei C:\MyCertificates\
  • Das Zertifikat zur Laufzeit angewandt erfolgreich mit diesem Code-Schnipsel in Dev wird: myWebService.ClientCertificates.Add(new X509Certificate.CreateFromCertFile(certPath));

Problem: WebService A ruft WebService B, und die zurückgegebene Ausnahme ist:

  

Die Anforderung ist fehlgeschlagen mit HTTP-Status   403: Verboten

Das bedeutet wirklich, dass das Zertifikat nicht in der Anfrage an WebService B gesendet wurde.

Ich bin die Annahme, unter, dass dieses Zertifikat in den Browser zu installieren ist keine Lösung. Die Browser-Einstellungen sind in der Regel pro Benutzer, und ich brauche das Zertifikat an den Benutzer, deren Anmeldeinformationen des Web-Dienst läuft unter geben. (Zum Beispiel Netzwerkdienst, System, oder was auch immer in den IIS AppPool Einstellungen ist).

Frage: Wie kann ich Zugang oder Vereinigung zu meinem Zertifikat gewähren an der angegebenen Verzeichnispfad zu dem Netzwerkdienstkonto oder einem anderen Nicht-Benutzer leben

War es hilfreich?

Lösung

Dieser Microsoft Support-Artikel kann von Nutzen sein:

  

Wie man einen Web-Service aufgerufen wird, indem ein Client-Zertifikat zur Authentifizierung in einer ASP.NET-Anwendung mit ( MS KB901183)

Ihr Web-Service 'A' würde die ASP.NET-Anwendung des Aufruf den Web-Service effektiv sein, wie in dem Artikel beschrieben.

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