0

我的网站身份验证有问题。

我正在构建一个需要使用与 Intranet 站点相同的单点登录的网站。

我的想法是在网站上使用 Windows 身份验证来获取用户凭据,然后使用 LDAP 对我们客户的域控制器进行身份验证。有问题的网站托管在客户域之外的服务器上。我已经尝试使用ActiveDirectoryMembershipProvider,但我无法让它与集成身份验证一起使用。

我的问题是我无法获得 Windows 身份验证以使用 LDAP 作为会员提供程序。目前,Windows 身份验证获取用户凭据,尝试针对计算机上的用户对它们进行身份验证,但由于 Web 服务器不在域中而失败。我想获取凭据并使用 LDAP 将它们发送到将对它们进行身份验证的域控制器。

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

4

1 回答 1

2

更新

如果您的网站托管在客户端域之外的服务器上,则您无法获得用户身份验证。

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

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

之后,它将使用这些Credentials向Domain Server发送请求。

在您的情况下,首先它不会在您希望与之通信的位置对象中找到域服务器名称。

例如:

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

这里Corp.Local是我的Location 对象中的域名以及该用户的用户名和密码,该用户具有编辑/更新/删除域服务器中任何用户的管理权限。

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

您的情况的唯一解决方案是您需要将所有用户从客户端服务器复制到您的域服务器,否则您需要在两个域服务器之间建立信任。

希望这就是你要找的。!!

于 2012-09-13T16:17:22.543 回答