Laden...

WCF Authentifizierung und Proxy Authentifizierung unterschiedlich

Erstellt von Feuerfalke vor 9 Jahren Letzter Beitrag vor 9 Jahren 3.841 Views
Feuerfalke Themenstarter:in
130 Beiträge seit 2005
vor 9 Jahren
WCF Authentifizierung und Proxy Authentifizierung unterschiedlich

Hallo,

ich möchte einen Webservice über WCF abfragen. Habe also die Servicereferenz zu meinem Projekt hinzugefügt. Dieser Webservice befindet sich in einer anderen Domäne und erfordert Windows-Authentifizierung. Mein Rechner befindet sich hinter einem Proxy, der nicht umgangen werden kann und ebenfalls Windows-Authentifizierung erfordert.
Der Konfigurationsdatei des Projekts habe ich den Eintrag

  <system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true" />
  </system.net>

hinzugefügt. Wenn ich eine "alte" Webservicereferenz verwende, funktioniert das auch ganz gut.
Als nächstes habe ich die Credentials des WCF Clients gesetzt:


var ressc = new ReportExecutionServiceSoapClient();
ressc.ClientCredentials.Windows.ClientCredential = new NetworkCredential("myusername", "mypassword", "mydomain");

Beim Aufruf einer Methode des Services bekomme ich folgende Exception:> Fehlermeldung:

In System.ServiceModel.Security.MessageSecurityException ist eine Ausnahme vom Typ "mscorlib.dll" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.

Zusätzliche Informationen: Die HTTP-Anforderung ist beim Clientauthentifizierungsschema "Anonymous" nicht autorisiert. Vom Server wurde der Authentifizierungsheader "NTLM" empfangen.

Die Authentifizierung am Proxy klappt also, es hakt nur am Webservice.
Wenn ich jetzt im WCF Binding

<security mode="TransportCredentialOnly">
            <transport clientCredentialType="NTLM" />
          </security>

setze, kann er sich allerdings nicht mehr am Proxy authentifizieren. Ich bekomme die Meldung > Fehlermeldung:

Zusätzliche Informationen: Der Remoteserver hat eine unerwartete Antwort zurückgegeben: (407) Proxy Authentication Required.

Als nächstes habe ich versucht den DefaultWebProxy zu setzen:

            WebRequest.DefaultWebProxy = new WebProxy("http://proxy:80")
            {
                Credentials = new NetworkCredential("myuser", "mypass", "anotherdomain"),
                UseDefaultCredentials = true
            };

Trotzdem gleicher Fehler. Beim Webservice handelt es sich übrigens um die Reporting Services. Aber das Problem ist meiner Meinung nach eher allgemein.
Mache ich irgendetwas falsch oder geht das einfach nicht, wie ich mir das vorstelle?

6.911 Beiträge seit 2009
vor 9 Jahren

Hallo Feuerfalke,

probier mal ob folgendes geht:


<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy usesystemdefault="false" proxyaddress="http://IP:Port" bypassonlocal="true" />
    </defaultProxy>
</system.net>

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Feuerfalke Themenstarter:in
130 Beiträge seit 2005
vor 9 Jahren

Hi,

leider der gleiche Effekt. Meine Vorstellung dazu ist, dass über die Einstellung

 <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Ntlm" />
          </security>

die Authentifizerungsmethode auch für den Proxy gilt, aber das kann doch nicht sein, oder?