以特定用户身份对TFS工作项进行更改

时间:2014-11-17 03:47:02

标签: c# tfs tfs2013 tfs-sdk

我正在创建一个Web应用程序,我的团队中的用户将使用该应用程序     对TFS工作项进行更改。我正在使用TFS API ..

为了访问TFS服务器,我在Web应用程序中使用了我的凭据。

现在,每当有人使用该应用程序并对TFS工作项进行更改时,它就会显示出来   好像我已经对这些项目进行了更改,因为我的凭据正在应用程序中使用。

有没有办法可以使用登录我的应用程序的人员的凭据作为进行更改的人在TFS上显示?

1 个答案:

答案 0 :(得分: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