[英]insert work item into tfs using tfs api
我正在構建一個網頁,以使用 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();
嘗試這個:
TfsTeamProjectCollection coll = new TfsTeamProjectCollection(url,CredentialCache.DefaultCredentials);
擺脫整個網絡憑據的東西。
你需要做兩件事。 首先按照 Etienne 的建議刪除憑據或傳遞默認值。
其次,您需要在您的 Web 應用程序中啟用“模擬”:http ://msdn.microsoft.com/en-us/library/134ec8tc(v=vs.100).aspx
如果您在 TFS 服務器上運行您的 Web 應用程序,那效果很好。 但是,如果您想在其他地方運行它,您還需要一個 kerberos 令牌以允許您將憑據傳遞到 TFS 服務器。 這通常稱為雙跳身份驗證。 要使其正常工作,您必須對 Active Directory 進行一些操作,並為您運行網站的帳戶設置服務主體名稱 (SPN)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.