首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NTLM身份验证的HTTP Web请求发送HTTP标头

问使用NTLM身份验证的HTTP Web请求发送HTTP标头
EN

Stack Overflow用户
提问于 2009-10-05 15:12:24
回答 3查看 22.9K关注 0票数 11

我想登录到Sharepoint门户,该门户将显示登录对话框,但使用的是NTLM身份验证。如何修改C#中的Http头以成功发起登录请求?我假设我需要在门户的登录部分中创建一个页面的HTTPWebRequest,并在旁边发布headers集合?

EN

回答 3

Stack Overflow用户

发布于 2009-10-05 15:18:08

您可以使用WebRequest类来完成此操作。

代码语言:javascript
复制
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的变量中。

票数 23
EN

Stack Overflow用户

发布于 2009-10-05 15:20:27

要使用NTLM,请参阅John's answer。如果需要跨会话设置头文件,请查看HttpWebRequest对象上的CookieContainer属性。您需要保留对您的CookieContainer的引用,并将其附加到您创建的任何其他HttpWebRequests。

票数 3
EN

Stack Overflow用户

发布于 2020-12-10 23:46:34

要使用NTLM身份验证进行WebRequest身份验证,应将凭证信息存储在CredentialCache中

代码语言:javascript
复制
var request = (HttpWebRequest)WebRequest.Create(url);
// INIT REQUEST HERE ...

var credential = new NetworkCredential(username, password, domain);
var credentialCache = new CredentialCache();
credentialCache.Add(new Uri(url), "NTLM", credential);
request.Credentials = credentialCache;

// SEND ...

来源:http://predicatet.blogspot.com/2007/01/httpwebrequest-networkcredential-with.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1520703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档