簡體   English   中英

如何在不使用C#知道密碼的情況下檢查項目的TFS 2010權限?

[英]How can I check for the TFS 2010 permissions of a project without knowing password using C#?

我想檢查用戶是否通過代碼具有對TFS 2010 Project的訪問權限。 我只知道他的用戶名,我不知道他的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)  
  }
}

然后迭代該列表,並檢查每個用戶是否存在於列表中。

暫無
暫無

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

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