【问题标题】:Active Directory Underlying Searcher Group Attributes from AccountManagement.Principal来自 AccountManagement.Principal 的 Active Directory 基础搜索者组属性
【发布时间】:2013-08-01 12:26:45
【问题描述】:

我在 .NET 4.5 中使用 System.DirectoryServices.AccountManagement。

我正在尝试从 Active Directory 中获取所有组和属性,如下代码所示。但是我有其他属性被定义为 Key Value is System.DirectoryServices.SearchResult ,

如何从 System.DirectoryServices.AccountManagement.Principal 获取 System.DirectoryServices.SearchResult 下的所有属性

// create your domain context
var ctx = new PrincipalContext(ContextType.Domain, _domain, _userName, _password);

// define a "query-by-example" principal - here, we search for a GroupPrincipal 
 var groupPrincipal = new GroupPrincipal(ctx);
// create your principal searcher passing in the QBE principal    
var searcher = new PrincipalSearcher(groupPrincipal);
foreach (var found in searcher.FindAll())
{
}

【问题讨论】:

    标签: c# c#-4.0 active-directory


    【解决方案1】:

    我已经用下面的扩展方法解决了这个问题,但是如果有任何有效的方法来做同样的工作,请建议我。

     public static class AccountManagementExtensions
        {
            public static String GetProperty(this Principal principal, String property)
            {
                var directoryEntry = principal.GetUnderlyingObject() as DirectoryEntry;
                return directoryEntry != null && directoryEntry.Properties.Contains(property)
                           ? directoryEntry.Properties[property].Value.ToString()
                           : String.Empty;
            }
    
            public static String GetCompany(this Principal principal)
            {
                return principal.GetProperty("company");
            }
    
            public static String GetDepartment(this Principal principal)
            {
                return principal.GetProperty("department");
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2019-08-03
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多