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