這更好奇,因爲我無法找到任何有關此現象的答案或文檔,但以下是這種情況:HTTPS請求HTTP丟棄頭部?
有2個服務/應用程序,都託管在IIS 7上。服務1收到HTTPS請求從外部來源(瀏覽器,提琴手等),並驗證它需要調用服務2的請求,所以服務1通過HTTP將它自己的,新的,單獨的呼叫傳送到服務2. 這個調用有一個授權頭被添加到請求對象。當服務2收到此呼叫時,認證標頭消失,好像被剝離一樣。因此,認證失敗,這返回到服務1,然後拒絕外部呼叫。
有沒有人有解釋爲什麼這個頭,和我在測試中看到的一些其他人不能通過HTTP調用?這是IIS或ASP.NET的行爲嗎?如果服務2的呼叫是HTTPS,那麼頭文件通過罰款。我生成這樣的請求:
string uriendpoint = "http://service.test.com/testService.svc/authtest";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uriendpoint);
request.Credentials = CredentialCache.DefaultCredentials;
var authField = MD5Hash("test:test!!2013");
request.Headers.Add(HttpRequestHeader.Authorization, authField.ToString());
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
我的意思是...我想將它放到代碼中,因爲我們無法成功驗證呼叫,因爲我們的頭文件不通過。結局,而不是隻是強制https的所有目的,但仍然沒有解釋爲什麼這些頭去了。 – Tom
@Tom - 在「我查看了到達服務器2的流量並且沒有標題」或「服務器2上的請求未經過驗證」中的「Gone」?我強烈懷疑標題是「丟失」,而不是我期望它們被忽略。 –
當我在本地調試它時,設置到端點的身份驗證管理器沒有任何頭傳遞給operationcontext對象。在同一個地方還有一個文件記錄器,在該狀態下被觸發並在遠程服務器上記錄該信息,從而在本地證實了我的發現。 – Tom