我有一个项目要求,我需要在远程/断开连接的 WPF 应用程序中对 ActiveDirectory 进行身份验证。
可能有几种方法可以尝试这样做,但是使用 ActiveDirectory 的 MembershipProvider 的最佳方法是什么?
我需要:
- 验证用户是否存在。
- 获取AD用户的组和角色。
这需要从 Active Directory 所在网络之外的远程位置进行。
我有一个项目要求,我需要在远程/断开连接的 WPF 应用程序中对 ActiveDirectory 进行身份验证。
可能有几种方法可以尝试这样做,但是使用 ActiveDirectory 的 MembershipProvider 的最佳方法是什么?
我需要:
这需要从 Active Directory 所在网络之外的远程位置进行。
从 WinForms 或 WPF 应用程序中,您现在可以利用“客户端应用程序服务”(感谢 MS 提供了一个非常通用的名称,现在寻求帮助非常痛苦!)。
这允许您连接到可以验证登录的 WCF 服务。上面的链接有一个演练,展示了让它全部工作是多么容易,一旦你有一个工作的应用程序,你可以修改你的配置以指向不同的 MembershipProvider 和/或 RoleProvider。
值得注意的是,开箱即用的解决方案包括一个名为ActiveDirectoryMembershipProvider的 MembershipProvider ,但没有用于 Active Directory 的 RoleProvider。
如果您确实需要获得角色(或组)的能力并且您正在使用 .NET 4.0,那么您可以利用新添加的 Active Directory API,这使一切变得更加容易,即System.DirectoryServices.AccountManagement。对于最基本的 Membership 和 Role 服务,您需要以下内容来创建自己的基本 MembershipProvider 和 RoleProvider:
您可以根据需要实现尽可能少或尽可能多的 API,您应该在新的 AccountManagement 命名空间中找到执行此操作所需的一切。