Wie lese ich HTTP-Anforderungsheader in einem WCF-Webdienst?
Wie liest man in einem WCF-Webdienst einen HTTP / HTTPS-Anforderungsheader? In diesem Fall versuche ich, den ursprünglichen URL-Host des verwendeten Clients zu ermitteln. Dies kann im X-Forwarded-Host-Header eines Lastenausgleichs oder im Host-Header, wenn es sich um eine Direktbox handelt, erfolgen.
ich habe es versuchtOperationContext.Current.IncomingMessageHeaders.FindHeader
aber ich denke, das ist bei SOAP-Headern als HTTP-Headern suchen.
Also, wie lese ich HTTP-Header? Dies ist sicherlich eine einfache Frage, und mir fehlt etwas Offensichtliches.
Die Antwort von EDIT - @ sinfere war fast genau das, was ich brauchte. Der Vollständigkeit halber habe ich Folgendes gefunden:
IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;
string host = null;
if (headers["X-Forwarded-Host"] != null)
host = headers["X-Forwarded-Host"];
else if (headers["Host"] != null)
host = headers["Host"];
else
host = defaulthost; // set from a config value