【问题标题】:Obtaining 'Canonical name of object' that you see in the AD Object tab获取您在 AD 对象选项卡中看到的“对象的规范名称”
【发布时间】:2021-03-13 23:49:59
【问题描述】:

尝试获取 AD 中用户帐户的“对象”选项卡中的“对象的规范名称”。

我可以得到distinguishedName和cn属性,但是格式都不正确,例如:

想要:CN=John Smith,OU=Users,OU=Organisation,OU=Tenants,DC=domain,DC=local

愿意想要:domain.local/Tenants/Organisation/Users/John Smith

感谢任何帮助!

【问题讨论】:

  • 可能是错的,但我认为一个是由另一个构成的
  • 一个 ADUser 对象也有一个 canonicalName 属性,你可以要求。向我们展示您如何“获取 distinctName 和 cn 属性”

标签: c# .net active-directory ldap


【解决方案1】:

最终通过以下方式完成此工作:

public string getCanonicalName(string cDomain, string cUsername)
{
    string canonicalName = String.Empty;
    PrincipalContext ctx = new PrincipalContext(ContextType.Domain, cDomain);
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, cUsername);
    using (DirectoryEntry de = user.GetUnderlyingObject() as DirectoryEntry)
    {
          de.RefreshCache(new string[] { "canonicalName" });
          canonicalName = de.Properties["canonicalName"].Value as string;
    }
            
    return canonicalName;
}

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多