UserPrincipal.GetAuthorizationGroups()在UserPrincipal中的专有名称包含特殊字符(在我的情况下为逗号)时抛出异常

时间:2018-05-16 06:14:42

标签: c# vb.net userprincipal principalcontext adgroup

我遇到需要递归查找用户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()

这里的问题是当UserPrincipal UserPrincipal包含特殊字符(在我的情况下是一个逗号)时,它会抛出异常。 在我的例子中,专有名称是:

  

CN = Smith \,John,DC = mydomain,DC = com

此处反向斜杠已用作转义字符,由$query .= 本身添加。

如果Distinguished Name不包含任何特殊字符,则函数Distinguished Name可以正常工作。 e.g。

  

CN = Smith John,DC = mydomain,DC = com

问题的原因是什么?有没有可用的解决方案?

0 个答案:

没有答案