Webservice Client https / fehlende Header

OliWan

Mitglied
Hi Coders!

Ich habe da eine kleine Sache dich mich Wahnsinnig macht :confused:

Also ich habe einen Webservice auf einem Webserver. Diesen binde ich in
mein Webform als Web-Referenz ein und diesen instanziere ich dann
im code

Code:
MeinWebservice mws = new MeinWebservice();

per
Code:
mws.url="http://meinewebseite.de/service/MeinWebservice.wsdl";
binde ich dann noch die URL ein (müsste ich nicht ich weis - aber wartet ab)

Das funktioniert alles super. Nun will mein Boss gern, dass wir den Service per https
aufrufen und nicht per http - also habe ich nun die url in "https" verändert.

Da funktioniert auch super - ABER jetzt kommts:

Es gibt Leute, die sitzen hinter einem Proxyserver, an dem Sie sich authentifizieren müssen, bevor der Request raus geht. Dafür habe ich noch ein paar Credentials
eingebastelt:

Code:
WebProxy mwp = new WebProxy("IP-Nr",Port);
mws.Proxy=mwp;
System.Net.CredentialCache cachex = new System.Net.CredentialCache();
cachex.Add(mwp.Address, "Basic", new System.Net.NetworkCredential("Kennung","Passw"));
mws.Proxy.Credentials=cachex;

Wenn ich nun die URL auf http stehen habe, läuft dieser Code super - und die Requests gehen raus. Wenn ich aber die URL auf https stehen habe, verweigert der Proxy (SQUID)
den Access, weil im Request Header der UserAgent nicht mit geliefert wird, Und der
Kunden seinen Proxy so konfiguriert hat, dass ein UserAgent da sein muss - kommt
dieser Request nicht am Proxy vorbei ;-(

Hinweis: Der Webservice Request hat einen UserAgent (den kann ich per mws.UserAgent abfragen) aber dieser scheint im https Paket eingebunden zu sein und ist deshalb nicht sichtbar?

Kann mir jemand sagen, wie ich einen Webservice auf eine https Adresse so einbinde, dass der "erste" Request" auch einen UserAgent hat?

Hope for help and so far

may the force be with you
OliWan
 
Es ist doch Sinn und Zweck von SSL, dass die Daten zwischen Sender und Empfänger nicht eingesehen werden können. Immerhin sollte (!) es damit zu keiner "Man in the Middle"-Attacke kommen. Ergo kommt der Proxy auch nicht zu seinen Daten. Ich tippe daher auf eine Umkonfigurierung des Proxies.
 
Na ja - da hast du schon recht. Allerdings geht es mir ja nur um die erste Kommunikation zum Proxy - nur hier muss ich von außen sichtbar einen UserAgent haben, damit
der denkt, ich sei ein Webbrowser.

Das funktioniert z.B. mit einem normalen Webrequest "problemlos" mit

Code:
HttpWebRequest ObjReq=(HttpWebRequest)WebRequest.Create(url);
ObjReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)";
WebResponse ObjResp = ObjReq.GetResponse();

Aber eben nicht mit
Code:
mws.UserAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)";

Ich hatte gehoft, ich kann sowas wie nen "Außenumschlag" um den Webservice legen, der dann auch für den Proxy sichtbar ist ?:confused:

still hope for a hint
 
Dazu wüßte ich keine Lösung. Wie gesagt, geh zum Admin und lass dir das freischalten. Ist der einfachste Weg.

Sonst kannst du dir noch die Web Service Enhancements (WSE) ansehen. Befürchte aber fast, dass du da auch nicht weiter kommen wirst.
 

Neue Beiträge

Zurück