Как я могу проверить разрешения TFS 2010 для проекта, не зная пароля с помощью C #? - PullRequest
0 голосов
/ 10 мая 2018

Я хочу проверить, есть ли у пользователя разрешения на доступ к проекту TFS 2010 или нет с помощью кода. Я знаю только его имя пользователя, я не знаю его пароль для TFS 2010. Этот код должен работать для любого пользователя, которого я запрашивал. Я должен вернуть истину или ложь, истина означает, что данный пользователь имеет права доступа 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

1 Ответ

0 голосов
/ 26 июля 2018

Вы можете получить список пользователей:

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)  
  }
}

Затем выполните итерацию списка и проверьте каждого пользователя, существует ли он в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...