我想使用System.DirectoryServices.AccountManagement检查用户是否在AD组中。在正常情况下,我可以使用user.IsMemberOf(Group)来完成。但是,如果该组属于另一个组(父组),则使用user.IsMemberOf(父组)将失败。有没有简单的方法呢?或者我是否必须以递归方式向下钻取组中子组的位置?
e.g。我们有IT小组,在IT小组内,我们有应用程序,基础架构,服务台。我只属于Application组,如果我做user.ismemberof(Application),我就会成功。如果我做user.ismemberof(IT),我就会变错。
答案 0 :(得分:2)
如果您使用UserPrincipal.GetAuthorizationGroups
方法,则可以免费获得:
此方法搜索递归所有组,并返回用户所属的组。返回的集合还可能包含系统将用户视为授权目的的其他组。
答案 1 :(得分:0)
您必须递归执行搜索,直到找不到要搜索的组。没有一种内置的方式可以走A / D会员链。