检查组内广告组中的用户

时间:2014-03-13 02:45:01

标签: c#

我想使用System.DirectoryServices.AccountManagement检查用户是否在AD组中。在正常情况下,我可以使用user.IsMemberOf(Group)来完成。但是,如果该组属于另一个组(父组),则使用user.IsMemberOf(父组)将失败。有没有简单的方法呢?或者我是否必须以递归方式向下钻取组中子组的位置?

e.g。我们有IT小组,在IT小组内,我们有应用程序,基础架构,服务台。我只属于Application组,如果我做user.ismemberof(Application),我就会成功。如果我做user.ismemberof(IT),我就会变错。

2 个答案:

答案 0 :(得分:2)

如果您使用UserPrincipal.GetAuthorizationGroups方法,则可以免费获得:

From MSDN

  

此方法搜索递归所有组,并返回用户所属的组。返回的集合还可能包含系统将用户视为授权目的的其他组。

答案 1 :(得分:0)

您必须递归执行搜索,直到找不到要搜索的组。没有一种内置的方式可以走A / D会员链。