Make Changes to a TFS Work Item as a specific user

1.2k views Asked by At

I am working on creating a Web application, which the users in my team will use to make changes to TFS Work Items. I am using TFS API for this..

In order to access the TFS Server , I used my credentials within the Web Application.

Now each time someone uses the application and makes changes to TFS work items, it shows as if I have made changes to these items since my credentials are being used in the application.

Is there a way I can use the credentials of the person logging into my application to show up on TFS as the person making the changes ?

1

There are 1 answers

2
MrHinsh - Martin Hinshelwood On BEST ANSWER

You need to use the 'make requests on behalf of others' functionality. You can impersonate another user by following:

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

And make sure your account running the website has the permission to "make requests on behalf of others":

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