簡體   English   中英

獲取用戶所在的廣告組列表

[英]Getting a list of AD Groups a user is in

我有這個;

PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, httpContext.User.Identity.Name);
PrincipalSearchResult<Principal> authgroups = user.GetAuthorizationGroups();
PrincipalSearchResult<Principal> userGroups = user.GetGroups();

它的工作到了一定程度。 但是,我回來的小組看起來並不像我期望的那樣。

在命令提示符下使用gpresult /V給我一個看起來像這樣的列表;

    BUILTIN\Administrators
    Everyone
    SQLServerMSSQLServerADHelperUser$ITVN1259
    BUILTIN\Users

但是使用代碼給了我;

Name ( "zz.Enterprise Vault Users Group 3" )
Name ( "CM-InternetAccessUsers(C)-SZ" )

如何獲得與gpresult相同的列表?

我使用這樣的東西-我認為您只缺少SamAccountName部分:

    public string[] Groups
    {
        get { return UserPrincipal.Current.GetAuthorizationGroups()
                                          .Select(e => e.SamAccountName)
                                          .ToArray(); }
    }

編輯 :使用GetAuthorizationGroups()代替GetGroups()為遞歸搜索(只返回安全組,而不是通訊組)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM