我有一种情况,我需要递归查找用户的 AD 组。例如,UserA 是 Group3 的一部分,Group3 是 Group2 的一部分,Group2 是 Group1 的一部分 所以,UserA 是 Group3、Group2、Group1 的一部分。
现在,要查找用户的所有组,我在代码中使用了 GetAuthorizationGroups()。
Dim UserP1 As UserPrincipal = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, Remote_ID)
allrecursiveUserGroups = UserP1.GetAuthorizationGroups()
这里的问题是当Distinguished Name ofUserPrincipal
包含特殊字符(在我的情况下是逗号)时,它会引发异常。在我的情况下,专有名称是:
CN=史密斯\,约翰,DC=mydomain,DC=com
这里反斜杠被用作UserPrincipal
自己添加的转义字符。
如果专有名称不包含任何特殊字符,则函数GetAuthorizationGroups()可以正常工作。例如
CN=Smith John,DC=mydomain,DC=com
问题的原因是什么,是否有任何可用的解决方案?