使用HTTP Web请求发送HTTP标头以进行NTLM身份validation

我想登录到一个Sharepoint门户,它会显示一个登录对话框,但是正在使用NTLM身份validation。 如何修改C#中的HTTP标头以成功登录请求? 我假设我需要对门户网站登录部分中的页面进行HTTPWebRequest,并将HTTP标头集合与此一起发布?

您可以使用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的变量中。

要使用NTLM,请参阅John的回答。 如果您需要跨会话拥有标头,请查看HttpWebRequest对象上的CookieContainer属性。 您需要保留对CookieContainer的引用,并将其附加到您所做的任何其他HttpWebRequests。