是否可以使用TFS SDK查询和编辑服务器访问级别(利益相关者,基本,高级)

时间:2015-10-21 10:40:04

标签: tfs permissions tfs2013 tfs-sdk tfs-security

我目前正在使用TFS 2013(On Premise)。我无法找到一种方法来以编程方式查询“利益相关方”,“基本”等列表。和'高级'用户,设置在访问级别'在服务器级别的控制面板的选项卡,或者,给定有效的TeamFoundationIdentity,找出他们相应的访问级别是什么。有可能这样做吗?

我对使用SDK非常熟悉,尽管在查找用户和安全性时只是合理的。例如,我知道如何在服务器上列出所有项目集合有效用户。

TfsConfigurationServer configurationServer

IIdentityManagementService ims = configurationServer.GetService<IIdentityManagementService>();

TeamFoundationIdentity[][] identities = ims.ReadIdentities(IdentitySearchFactor.AccountName,
        new[] { "Project Collection Valid Users" }, MembershipQuery.Expanded, ReadIdentityOptions.ExtendedProperties);

非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。

似乎没有关于如何使用TFS API查询和编辑服务器访问级别的官方文档。

请参阅以下类似帖子中的讨论: https://social.msdn.microsoft.com/Forums/vstudio/en-US/222245c1-5f72-4daa-bc0f-a038ee363bd8/querying-tfs-user-access-level-via-the-object-model?forum=tfsgeneral

答案 1 :(得分:0)

您可以使用REST Client API读取用户的访问级别。

String collectionUri = "https://{account}.visualstudio.com";
                VssCredentials creds = new VssClientCredentials();
                creds.Storage = new VssClientCredentialStorage();
                VssConnection connection = new VssConnection(new Uri(collectionUri), creds);
                var licensingHttpClient = connection.GetClient<LicensingHttpClient>();
                var accountEntitlement = licensingHttpClient.GetAccountEntitlementAsync().Result;
                var license = accountEntitlement.License;