【问题标题】:Use Active Directory to populate Request.Credentials to access webservice使用 Active Directory 填充 Request.Credentials 以访问 Web 服务
【发布时间】:2012-12-15 00:12:03
【问题描述】:

有没有办法检测用户的 AD 凭据并使用它们来创建可用于查询 Web 服务的 NetworkCredential 对象?下面是我的代码摘录,基本上我是通过 web 服务查询 GIS 数据库,而 web 服务需要 Windows AD 身份验证。

目前这是一个手动过程,因此我们只是将自己的 AD 凭据硬编码到顶部的变量中,它工作正常,但我希望页面检测某人的 AD 凭据并使用它们来创建 NetworkCredential 对象,这样我们就可以让我们的内部客户也使用该页面。

Public Function getJSON(ByVal url As String) As String

    Dim HTMLSource As String = ""
    Dim Request As WebRequest = WebRequest.Create(url)
    Request.Credentials = New NetworkCredential(username, password, domain)
    Dim Response As WebResponse = Request.GetResponse
    Dim SR As StreamReader
    SR = New StreamReader(Response.GetResponseStream)
    HTMLSource = SR.ReadToEnd
    SR.Close()
    Return HTMLSource
End Function

【问题讨论】:

    标签: asp.net vb.net web-services active-directory


    【解决方案1】:

    让用户将其 Kerberos 凭据委托给您的服务器/服务,在身份验证期间提取该凭据,模拟并代表用户执行您的请求。

    【讨论】:

    • 如果这是通过 ASP.NET 网页实现的,我们将如何做到这一点?
    • 您是否已将 IIS 配置为使用 Kerberos 执行协商身份验证?此外,将该机器帐户设置为可委托的。否则您将不会收到任何委派的凭据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多