0
我們使用Windows身份驗證。我已經創建了WebAPI/MVC應用程序以供玩。如何從IIS託管的WebAPI/MVC應用程序(通過代理服務器)發出外部GET請求
當生產服務器上託管/IIS應用項目需要憑據來執行HTTP GET到外部網站。由於某些原因,我們暫時不能使用特殊的AD帳戶。我已閱讀ASP.NET模擬。據我瞭解,有可能與調用者的憑據合併?我試着使用這段代碼,但我不確定它是否適合與WebAPI一起使用。
[HttpGet]
[Route("api/test")]
public HttpResponseMessage test() {
using(var ctx = WindowsIdentity.GetCurrent().Impersonate()) {
var proxyOptions = new WebProxy("[proxyUrl]");
proxyOptions.UseDefaultCredentials = true;
var client = new WebClient();
client.UseDefaultCredentials = true;
client.Proxy = proxyOptions;
return new HttpResponseMessage {
Content = new StringContent(
content: client.DownloadString("[externalApiUrl]"),
encoding: Encoding.Default,
mediaType: "text/plain"
)
};
}
}
無論如何,這是行不通的。
我應該配置代表而不是模仿?
如何執行一個外部請求,而不單獨AD帳戶呢?
是的,這確實是最簡單的方法。但我們可能沒有專門用於此目的的帳戶。 – lexeme 2015-03-03 10:02:56
您是否嘗試過CredentialCache.DefaultCredentials而不是DefaultNetworkCredentials – 2015-03-03 10:09:30