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

C# 使用HttpWebRequest访问Active Directory联合身份验证服务后面的链接,c#,httpwebrequest,ntlm,C#,Httpwebrequest,Ntlm,我有一个网站,它使用Active Directory联合身份验证服务来验证用户。我想在代码中使用HttpWebRequest类访问站点的URL。但当我尝试时,我得到了一个401错误。经过一些研究,我发现它使用NTLM身份验证。我试过了。但是我看到我得到的响应是一个带有一些隐藏字段的HTML页面,它有一个javascript来在加载时提交页面。操作URL将是我的域的URL。我试图手动将HTML文本作为表单提交,但再次得到相同的响应。我不太确定如何访问该页面。有人有主意吗?过去几天我一直在处理这样一

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

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

  • 创建System.Net.CookieContainer对象并将其传递给每个httpwebrequest的CookieContainer
  • 手动解析表单元素并将它们作为请求流传递给表单的目标。这必须作为POST而不是httpwebrequest完成
  • 对于任何连续请求,请确保附加相同的CookieContainer。这是您已验证的ADFS Cookie的存储位置。没有它们,你只会陷入无休止的循环
  • 问候