使用HttpWebRequest访问Active Directory联合身份验证服务后面的链接

时间:2012-09-13 00:51:11

标签: c# httpwebrequest ntlm

我有一个使用Active Directory联合身份验证服务对用户进行身份验证的网站。我想在代码中使用HttpWebRequest类访问该站点的URL。但是当我尝试这个时,我得到401错误。经过一些研究,我发现它使用NTLM身份验证。我试过了this solution。但是我看到我得到的响应是一个带有一些隐藏字段的HTML页面,它有一个javascript来加载页面。操作网址将是我的域名。我试图手动将HTML文本作为表单提交,但我再次得到相同的响应。不太确定我如何访问该页面。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

过去几天我一直在处理这样的问题。在尝试了很多事情后,我最终采用了以下方法:

  1. 创建一个System.Net.CookieContainer对象并将其传递给每个httpwebrequest的CookieContainer。
  2. 手动解析表单元素并将其作为RequestStream传递给表单的目标。这必须以POST方式完成,而不是在httpwebrequest上进行。
  3. 对于任何连续请求,请确保附加相同的CookieContainer。存储经过身份验证的ADFS Cookie。如果没有它们,你只会遇到无限循环。
  4. 此致