首页 文章

使用ActiveDirectoryMembershipProvider进行Windows身份验证

提问于
浏览
0

我的网站身份验证存在问题 .

我正在构建一个网站,需要使用相同的单点登录作为内部网站点 .

我的想法是在网站上使用Windows身份验证来获取用户凭据,然后使用LDAP对我们的客户端's Domain controller. The website in question is hosted on a server outside the client'域进行身份验证 . 我已经尝试使用 ActiveDirectoryMembershipProvider 但我无法使用集成身份验证 .

我的问题是我无法通过Windows身份验证将LDAP用作成员资格提供程序 . 目前,Windows身份验证获取用户凭据,尝试针对计算机上的用户对其进行身份验证,并因Web服务器不在域上而失败 . 我想获取凭据并使用LDAP将它们发送到将对其进行身份验证的域控制器 .

有没有办法可以使用LDAP连接进行集成身份验证进行身份验证?

1 回答

  • 1

    Updated

    如果您的网站在客户端域外的服务器上是 Hosted ,那么您将无法获得用户身份验证 .

    因为当您将凭据发送到托管服务器时,域服务器中有一个 Location 对象,它将尝试在您托管您的网站的本地首先找到指定的 User ,然后尝试找到已在位置指定的 Doamin Server (尽管我们也可以设置优先级)

    如果它在本地没有找到任何用户那么

    之后,它将使用 Credentials 发送请求到 Domain Server .

    在您的情况下,首先,它不会在您希望与之通信的位置对象中找到 Domain Server name .

    例如:

    PrincipalContext pr = new PrincipalContext(ContextType.Domain, "corp.local", "dc=corp,dc=local", username, password);
    

    此处 Corp.Local 是该用户的 Location objectUsername and Password 中的域名,该域名具有编辑/更新/删除域服务器中任何用户的管理权限 .

    所以整个过程再次进行,当在Location对象中找到指定的 Domain Server 时,它将与 Domain 进行通信并生成 TOKEN

    对于您的案例,唯一的解决方案是您需要将所有用户从Client Server复制到域服务器,否则您需要在两个域服务器之间 Build TRUST .

    希望这就是你要找的东西 . !!

相关问题