0

我有一种情况,我需要递归查找用户的 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

问题的原因是什么,是否有任何可用的解决方案?

4

0 回答 0