【问题标题】:Passing Active Directory Credentials from an ASP.Net Page to Retrieve Web Content从 ASP.Net 页面传递 Active Directory 凭据以检索 Web 内容
【发布时间】:2012-05-22 00:38:10
【问题描述】:

我最近将一个网站从表单身份验证转换为 Windows 身份验证。我终于让它正常工作了。我遇到了一个尚未找到合适解决方法的问题。我们有几个页面从后端代码中调用其他页面并从返回的页面中检索内容部分。由于代码正在调用其他页面,我收到拒绝访问错误(代码无法通过身份验证)。我尝试了几种通过请求传递 Windows 凭据的方法,但都失败了。

我愿意为此功能创建一个 AD 用户,并将用户名和密码与请求一起硬编码,以便检索信息。谁能给我允许我这样做的代码,到目前为止我一直没有成功。谢谢。

-编辑- 我不记得全部了,但这是我尝试的最后一个:

Dim wc As New WebClient()  
Dim credential As NetworkCredential = New NetworkCredential(ADusername, ADPwd, ADDomain)  
wc.Credentials = credential  
Dim strXML As String = wc.DownloadString(RssFeedUrl)  

这会导致页面返回 (401) Unauthorized。

我尝试过的另一件事...其中一个“检索”是 RSS 提要,这是提要的位置。

  <location path="RSS.ashx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

这似乎没有帮助。

【问题讨论】:

  • 您尝试过哪些事情?您可以节省每个人发布您已经尝试过的内容的时间。
  • "我们有几个页面从后端代码中调用其他页面并从返回的页面中检索内容部分"它是如何做到的?
  • 其他页面之一使用 WebClient 对象来检索动态创建页面的 HTML,然后将其中的一部分通过电子邮件发送给选定的收件人。 - 很像上面的例子。

标签: asp.net windows-authentication


【解决方案1】:

事实证明,经过更多测试,我发现上面的代码确实有效。我将它复制到一个 Windows 应用程序并在几台机器上运行它。除了我想在其上托管代码的服务器之外,所有这些都正常工作。是否对事件查看器进行了一些挖掘,并且有一些失败的安全审计。使用此信息,我发现服务器上有一个“环回检查”。使用Microsoft KB article 896861 我禁用了站点的环回检查,瞧!它现在正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多