2014-11-17 6 views
2

Я работаю над созданием веб-приложения, которое пользователи в моей команде будут использовать для , внести изменения в рабочие элементы TFS. Я использую TFS API для этого.Внесите изменения в рабочий элемент TFS как конкретный пользователь

Для доступа к серверу TFS я использовал свои учетные данные в веб-приложении.

Теперь каждый раз, когда кто-то использует приложение и вносит изменения в рабочие элементы TFS, он показывает , как если бы я внес изменения в эти элементы, поскольку мои учетные данные используются в приложении.

Есть ли способ использовать учетные данные человека, регистрирующегося в моем приложении, для отображения в TFS как человека, внесшего изменения?

+1

сделать веб-приложение использовать windows auth и олицетворять этого пользователя в вызовах API? (Не знаю много о TFS API или вашей настройке, но при условии, что вы используете учетные записи Windows, вы должны иметь возможность передавать учетные данные) –

+0

Вы пробовали 'HttpContext.Current.User'? – artm

+3

Почему вы не используете веб-интерфейс, который поставляется с TFS, вы не изобретаете колесо здесь ..? – MethodMan

ответ

3

Вам необходимо использовать функции «делать запросы от имени других пользователей». Вы можете выдавать себя за другого пользователя, следующим образом:

public void Impersonation(Uri serverUri,string userToImpersonate) 
{ 
    // Read out the identity of the user we want to impersonate 
    TeamFoundationIdentity identity = ims.ReadIdentity(IdentitySearchFactor.AccountName, 
     userToImpersonate, 
     MembershipQuery.None, 
     ReadIdentityOptions.None); 

    tfs_impersonated = new TfsTeamProjectCollection(serverUri, identity.Descriptor); 

    GetAuthenticatedIdentity(tfs_impersonated); 

    // Use this tfs_impersonated object to communicate to TFS as the other users. 
} 

И убедитесь, что ваш аккаунт работает веб-сайт имеет разрешение на «делать запросы от имени других лиц»:

enter image description here http://www.codeproject.com/Articles/104019/TFS-API-Part-TFS-Impersonation

+0

Я вижу свойство «Изменено» и «Создано по», но не свойство «Авторизованные» для рабочего элемента? – CodeNinja

+0

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