2009-10-05 75 views
6

我想登錄到一個Sharepoint門戶網站,該門戶網站會顯示一個登錄對話框但正在使用NTLM身份驗證。我如何修改C#中的HTTP頭以成功登錄請求?我假設我需要在門戶網站登錄部分的頁面中創建一個HTTPWebRequest,並將HTTP頭部集合一起發佈。發送包含HTTP Web請求的HTTP頭以進行NTLM身份驗證

回答

18

您可以使用WebRequest類來完成此操作。

WebRequest req = WebRequest.Create(tokenUri); 
req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
req.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 
WebResponse resp = req.GetResponse(); 
StreamReader reader = new StreamReader(resp.GetResponseStream()); 
var token = reader.ReadToEnd().Trim(); 

該代碼讀取整個響應到名爲token變量。

+7

當我嘗試這個時,我得到'遠程服務器返回一個錯誤:(401)未經授權。在Firefox上使用相同的URL /用戶/密碼。基於HTTP的NTLM – 2013-04-04 08:10:21

2

要使用NTLM請參閱John's的答案。如果您需要在會話中使用標題,請查看HttpWebRequest對象上的CookieContainer屬性。您需要保留對CookieContainer的引用並將其附加到您製作的任何其他HttpWebRequests。

相關問題