2013-11-27 55 views
0

在企業桌面場景中,用戶登錄到Active Directory域時,我希望我的應用程序使用Internet Explorer使用的同一代理髮出HTTP請求。問題在於代理需要使用當前登錄用戶的憑據進行NTLM身份驗證,這是我不知道應用程序如何獲取的。使用具有AD身份驗證的IE代理髮出HTTP請求

除了要求用戶輸入他/她的密碼(爲此我找到了很多解決方案)之外,有沒有一種方法可以正確使用它,比如使用一些本地API?在這種情況下,我對編程語言沒有挑剔,如果它在這種情況下工作,我接受它,儘管我更喜歡C/C++。

+0

您選擇了哪個選項? –

+0

我使用WinINet,將'INTERNET_OPEN_TYPE_PRECONFIG'傳遞給'InternetOpen',它工作。我還發現你可以使用[CredentialCache](http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials%28v=vs.110%29.aspx) .NET,但我更喜歡本地方式。 – dnet

回答

1

由於您在Windows上,並且您正在使用域登錄,所以應該依賴Kerberos。無論如何,你現在有幾種選擇:

  1. 如果你使用WinHTTP,你必須啓用它。
  2. 在Windows上使用libcurl,它將在默認情況下使用SSPI支持進行編譯。
  3. 如果您自己使用套接字,則必須使用Negotiate程序包調用SSPI,並自行爲每個HTTP交換標記。