使用tfs api将工作项插入到tfs中

问题描述 投票:1回答:3

我正在构建一个网页,使用TFS API将TFS工作项插入TFS。

我正在使用我的凭据连接到TFS服务器。

每次有人使用TFS网页创建TFS工作项时,它会以我的名义创建工作项,因为我是连接到TFS服务器的工作项。有没有办法我可以创建一个工作项,用户登录我的Web应用程序并创建工作项?

我可以访问用户名,但不能访问用户密码

protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
        {
        Uri url = new Uri("url");

            NetworkCredential nc = new NetworkCredential();

            TfsTeamProjectCollection coll = new TfsTeamProjectCollection(url, nc);

            coll.EnsureAuthenticated();

            WorkItemStore workItemStore = coll.GetService<WorkItemStore>();
            Project teamproject = workItemStore.Projects["ABC"];
            WorkItemType workItemType = teamproject.WorkItemTypes["Issue"];

            WorkItem wi = new WorkItem(workItemType);

            wi.Title = ((TextBox)FormView1.FindControl("txtTaskTitle")).Text;   

            wi.Save();

        }

您能否告诉我如何将登录应用程序的人员的名称作为创建TFS工作项的人员?

我也尝试过以下方法:

       Uri url = new Uri("url");

        var collection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(url);
        var workItemStore = new WorkItemStore(collection, WorkItemStoreFlags.BypassRules);

        Project teamproject = workItemStore.Projects["ABC"];
        WorkItemType workItemType = teamproject.WorkItemTypes["Issue"];

        WorkItem wi = new WorkItem(workItemType);

        string s = "Name";
        wi.Fields["System.CreatedBy"].Value = s;

        wi.Title = "Test Item";
        wi.Save();
c# asp.net visual-studio tfs tfs-sdk
3个回答
0
投票

试试这个:

TfsTeamProjectCollection coll = new TfsTeamProjectCollection(url,CredentialCache.DefaultCredentials);

摆脱整个网络凭证的事情。


0
投票

您可以尝试设置Created By字段:

wi.Fields["System.CreatedBy"].Value = "TfsService";

根据the answer on this thread,您可能需要成为项目收集服务帐户的成员。

另外,请参阅this thread。看起来您可能只能修改第一个修订版本上的“创建者”字段...或者,您可以尝试创建WorkItemStore(而不是使用服务)并使用此标志:WorkItemStoreFlags.BypassRules


0
投票

你需要做两件事。首先按照Etienne的建议,删除凭据或传递默认值。

其次,您需要在Web应用程序中启用“模拟”:http://msdn.microsoft.com/en-us/library/134ec8tc(v=vs.100).aspx

如果您在TFS服务器上运行Web应用程序,那可以正常工作。但是,如果要在其他地方运行它,您还需要一个kerberos令牌,以允许您将凭据传递给TFS服务器。这通常称为双跳认证。为了使其正常工作,您必须使用Active Directory执行一些giggery-pokery,并为您运行网站的帐户设置服务主体名称(SPN)。

© www.soinside.com 2019 - 2024. All rights reserved.