【问题标题】:Windows authentication with ActiveDirectoryMembershipProvider使用 ActiveDirectoryMembershipProvider 进行 Windows 身份验证
【发布时间】:2012-09-13 15:52:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 当您运行 Solution Local 时,它是否可以正常使用 Windows 身份验证?
  • 是的,内网的windows认证工作正常。问题不是让 windows 身份验证工作,而是让 windows 身份验证使用 ActiveDirectoryMembershipProvider 和指定的 LDAP 服务器验证其凭据,而不是仅仅关闭并检查其标准用户列表。
  • 这是什么问题?...您想知道如何使用 LDAP 连接与 Active Directory Server 进行通信吗?
  • 是的,我已将 Active Directory 会员资格提供商设置为默认会员资格提供商,我已输入我们服务器的地址。然而,没有数据被发送到任何类型的域控制器。
  • 您正在测试的机器必须位于您正在与之通信的 AD 的域中。我还提供了答案,您如何使用 PrincipalContext 建立连接

标签: asp.net iis ldap windows-authentication


【解决方案1】:

更新

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

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

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

之后,它将使用这些凭据域服务器发送请求。

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

例如:

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

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

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

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

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

【讨论】:

  • 为了得到user.identity.name,用户不需要已经认证了吗?
  • @zeocrash 这实际上取决于。在我的情况下,我的用户已经登录到域中,并且我在此处检查该域 ID 是否在我们的 Active Directory 服务器中启用或存在。请在此处提及您的代码或您遇到的错误。
  • 我的问题是我无法获得 Windows 身份验证以使用 LDAP 作为会员提供程序。目前,Windows 身份验证获取用户凭据,尝试对其进行身份验证,但由于 Web 服务器不在域中而失败。我想获取凭据并使用 LDAP 将它们发送到将对它们进行身份验证的域控制器。
  • 谢谢,我感觉这是不可能的。我没有提出这个想法,我只是负责构建它的不幸的人。最后,我们的客户端没有单点登录就可以了,我们只需使用您提供的 LDAP 代码验证输入到表单中的用户名和密码。
猜你喜欢
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多