Active directory Active Directory,LDAP用户主体

Active directory Active Directory,LDAP用户主体,active-directory,ldap,Active Directory,Ldap,当我在UserPrincipal类上写出DifferentizedName属性时得到了这个信息 CN=Test Testie, OU=123,OU=Company,OU=Accounts,DC=myServer,DC=local 我很想知道是否有房产可以从你那里拿到NR123。是否有其他属性可以获取该信息,或者这是筛选出我的信息的最佳方法?\n否。没有“父”属性 根目录下的每个对象都有一个父对象,即容器(CN=)上的组织单元(OU=)。因此,只需解析前两个逗号之间的内容,并删除OU=和CN=。

当我在UserPrincipal类上写出DifferentizedName属性时得到了这个信息

CN=Test Testie, OU=123,OU=Company,OU=Accounts,DC=myServer,DC=local
我很想知道是否有房产可以从你那里拿到NR123。是否有其他属性可以获取该信息,或者这是筛选出我的信息的最佳方法?

\n否。没有“父”属性

根目录下的每个对象都有一个父对象,即容器(CN=)上的组织单元(OU=)。因此,只需解析前两个逗号之间的内容,并删除OU=和CN=。这样您就拥有了Name属性

请注意,可能会有名称中带有逗号的对象。然后看起来是这样的:

        var ctx = new PrincipalContext(ContextType.Domain, "myDomain.local");
        var user = UserPrincipal.FindByIdentity(ctx, "myUser");
        var auth = user.GetAuthorizationGroups().Any(x => x.Name.Contains("myGroup"));
myGroup.xxxx.111
太好了,欧

CN=测试测试,OU=伟大的OU\,The,OU=公司,OU=账户,DC=myServer,DC=local

测试,测试

CN=测试\,测试 ,OU=123,The,OU=Company,OU=Accounts,DC=myServer,DC=local

因此,在解析之前,您需要检查是否存在反拉!如果找到,则需要在第一个和第三个逗号之间进行解析


是一个关于专有名称中“特殊”字符的链接。

好的,它可以正常工作,但感觉这样做不是最好的做法:

        var ctx = new PrincipalContext(ContextType.Domain, "myDomain.local");
        var user = UserPrincipal.FindByIdentity(ctx, "myUser");
        var auth = user.GetAuthorizationGroups().Any(x => x.Name.Contains("myGroup"));
myGroup.xxxx.111
因为我需要使用contains,因为组可能看起来像这样:

        var ctx = new PrincipalContext(ContextType.Domain, "myDomain.local");
        var user = UserPrincipal.FindByIdentity(ctx, "myUser");
        var auth = user.GetAuthorizationGroups().Any(x => x.Name.Contains("myGroup"));
myGroup.xxxx.111
有更好的办法解决这个问题吗