【问题标题】:TFS 2013 get All TFS group including Windows groupTFS 2013 获取所有 TFS 组,包括 Windows 组
【发布时间】:2018-05-04 11:34:21
【问题描述】:

我正在开发这个 TFS 2013 以获得所有 TFS 组的项目级权限。但我无法获得 windows 组。 我使用以下代码列出组:

var applicationGroups = identityManagementService.ListApplicationGroups(project.Uri.AbsoluteUri, ReadIdentityOptions.None);

但此代码只会列出 Teams ([project]\Project Team) 和 VSO 组 ([project]\Build Administrators, [project]\Contributors, [project]\Readers, [project]\Project Administrators, [project]\Project Valid Users, [project]\TFS_Build_Administrators, [project]\TFS_Build_Readers) 下的 TFS 组,而不是 Windows 组 (TFS_Builder, TFS_DEV_AM...) 下的那些 TFS 组。

有谁知道我如何做到这一点,或者为什么我无法在 Windows 组下获得这些?


您好,非常感谢您的回复。 但我实际上是想查询所有这些 Windows 组,然后我将尝试确定每个组的成员。 您的回答也是正确的,但它仅适用于单个用户并尝试获取 memberOf 以便我们知道哪个 windows 组是用户的 memberOf。 我只是将其标记为是,因为我找到了一种通过该代码列出它的方法。但我不确定我是否可以再次为此发布另一个问题。反正。 下面是 TFS 2013 的新代码,因为 IGroupSecurityService 已过时。

var collection = new TfsTeamProjectCollection(new Uri("http://mytfs:8080/tfs/MyCollection"));
var identityService = collection.GetService<IIdentityManagementService>();
var readIdentity = identityService.ReadIdentity(IdentitySearchFactory.AccountName, @"[domailName here]\" + userName, MembershipQuery.Direct, ReadIdentityOptions.None);

【问题讨论】:

    标签: tfs


    【解决方案1】:

    Windows 组不存储在 TFS 中,而是存储在 Active Directory 中。要通过 TFS 查询 Active Directory,请使用:

    var collection = new TfsTeamProjectCollection(new Uri("http://mytfs:8080/tfs/MyCollection"));
    var gss = collection.GetService<IGroupSecurityService>();
    Identity i = gss.ReadIdentity(SearchFactor.AccountName, "myalias", QueryMembership.Direct);
    

    这是一个用户,你也可以尝试通过它来获取组。

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2014-07-10
      • 2015-03-13
      • 2014-08-21
      • 2015-04-26
      相关资源
      最近更新 更多