如何使用 C# 在不知道密码的情况下检查项目的 TFS 2010 权限?



我想通过代码检查用户是否具有 TFS 2010 项目的访问权限。我只知道他的用户名,我不知道他的 TFS 2010 密码。此代码应该适用于我请求的任何用户。我应该返回 true 或 false,true 表示给定用户具有 TFS 2010 对给定项目的访问权限。以下代码适用于我知道密码的用户。我需要它为任何用户工作。请帮助我

Dim ProjectName As String = "ProjectName"
Dim icp As ICredentialsProvider = New UICredentialsProvider
Dim ncred As NetworkCredential = New NetworkCredential("Username", "password", "domain")
TFS = New TeamFoundationServer(Server, ncred, icp)
store = CType(TFS.GetService(GetType(WorkItemStore)), WorkItemStore)
Dim Project As Project
If store.Projects.Count >= 0 Then
For Each Project In store.Projects
If Project.Name = ProjectName Then
If Project.HasWorkItemWriteRights = True Or Project.HasWorkItemReadRights = True Then
Console.WriteLine("User have permissions")
End If
End If
Next
End If

您可以获取用户列表:

TfsConfigurationServer tcs = new TfsConfigurationServer(new Uri("http://tfsurl:8080/tfs"));
IIdentityManagementService ims = tcs.GetService<IIdentityManagementService>();
TeamFoundationIdentity tfi = ims.ReadIdentity(IdentitySearchFactor.AccountName, "[TEAM FOUNDATION]\Team Foundation Valid Users", MembershipQuery.Expanded,ReadIdentityOptions.None);
TeamFoundationIdentity[] ids = ims.ReadIdentities(tfi.Members, MembershipQuery.None, ReadIdentityOptions.None);
List<string> allUsers = new List<string>;
foreach (TeamFoundationIdentity id in ids)
{ 
if (id.Descriptor.IdentityType == "System.Security.Principal.WindowsIdentity")
{
allUsers.Add(id.DisplayName)  
}
}

然后迭代列表并检查每个用户是否存在于列表中。

最新更新