2009-10-05 39 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。

相关问题