NTLM / Windows身份验证和GetAllUsers()

时间:2009-06-22 19:21:21

标签: asp.net membership single-sign-on provider

我正在设计一个将在Intranet上使用的Web应用程序,因此Windows身份验证模式非常理想。但是,应用程序的一部分需要能够获取用户列表(选择用户进行分配.Adembers.GetAllUsers()不适用于(自己)使用Windows身份验证。我不能使用ActiveDirectoryMembershipProvider因为我将不允许存储要绑定的凭据;因此任何AD访问都必须以经过身份验证的用户身份完成。

我已经搜索了几个星期以获得明确的示例或解决方案,我开始认为世界上没有人有同样的问题。

我唯一的选择是使用Application_AuthenticateRequest并将“membership”的两个世界连接到“windows auth”?但是,如何在应用程序的其他位置获取“所有”用户列表?是否存在模仿主叫用户的ActiveDirectoryMembershipProvider?

1 个答案:

答案 0 :(得分:1)

AD可以包含大量用户 - 因此在一般情况下,列出所有用户通常并不实际。

如果您正在设计用于挑选用户的UI(例如,分配给角色),我会执行与现有Windows UI类似的操作来选择AD用户或组。例如,输入几个字符并按名字,姓氏或通用名称搜索匹配项。显示所有匹配项(最多一些 - 例如1000)并让用户从中选择。