通过成员资格提供程序在断开连接的WPF应用程序中验证和获取Active Directory用户的角色

时间:2008-11-27 22:29:33

标签: wpf active-directory roles membership-provider

我有一个项目要求,我需要在远程/断开连接的WPF应用程序中对ActiveDirectory进行身份验证。

尝试执行此操作可能有多种方法,但使用ActiveDirectory的MembershipProvider的最佳方法是什么?

我需要:

  1. 验证用户是否存在。
  2. 获取AD用户的组和角色。
  3. 这需要从Active Directory所在的网络外部的远程位置进行。

1 个答案:

答案 0 :(得分:15)

在WinForms或WPF应用程序中,您现在可以利用“Client Application Services”(感谢MS提供一个非常通用的名称,现在寻找帮助非常痛苦!)。

这允许您连接到可以验证登录的WCF服务。上面的链接有一个演练,显示了让它全部工作是多么容易,一旦你有一个工作的应用程序,你可以修改你的配置指向不同的MembershipProvider和/或RoleProvider。

值得注意的是,开箱即用的解决方案包括名为ActiveDirectoryMembershipProvider的MembershipProvider,但Active Directory没有RoleProvider。

如果您确实需要能够获取角色(或组)并且您正在使用.NET 4.0,那么您可以利用添加的新Active Directory API使一切变得更加容易,即System.DirectoryServices.AccountManagement。对于最基本的成员资格和角色服务,您需要具备以下内容来创建自己的基本MembershipProvider和RoleProvider:

您可以根据需要实现少量或多少API,您应该在新的AccountManagement命名空间中找到所需的一切来执行此操作。