[英]Unable to connect to my Tfs server from c# code
我們正在嘗試使用TeamFoundationServer .net控件在c#中對托管的TFS服務帳戶進行身份驗證,這是我的代碼:
NetworkCredential tfsCredential = new NetworkCredential(username, password);
TeamFoundationServer tfsServer = new TeamFoundationServer(tfsAddress, tfsCredential);
tfsServer.Authenticate();
請注意,這不是本地TFS服務器,它是tfspreview.com上的托管TFS服務,我們嘗試使用Windows Live帳戶和備用身份驗證憑據登錄,但每次我們嘗試進行身份驗證時,Internet Explorer都會打開一個新窗口,並要求憑據。
如果我們使用IE提示連接它可以工作但我們想要存儲憑據並連接到服務器而不是每次都要求憑據,
您可以在配置文件下配置基本身份驗證,也可以使用服務憑據。 這一切都取決於您需要什么樣的許可。 基本身份驗證在用戶帳戶下運行,這在服務帳戶具有提升的權限時往往是不好的做法。
配置TF Service的基本認證
對於基本用戶身份驗證,您應該連接到TF服務並按指示打開您的配置文件。 您的個人資料中有一個“憑據”選項卡,可用於配置這些憑據。 這對於通過API進行每用戶訪問很有用,但如果您想通過服務器或服務運行則不好。
檢索TFS服務憑據
我創建了一個名為TFS Service Credential Viewer的應用程序,它允許您檢索TF Service實例的服務憑據。 這與構建和測試服務器在本地配置它們以對抗雲時的工作方式相同。
我希望這有幫助...
您可以嘗試使用此代碼基於模擬服務器
var serverUrl = "";
ICredentials credentials = new NetworkCredential(username, password, domain);
ICredentialsProvider TFSProxyCredentials = new NetworkCredentialsProvider(credentials);
TfsTeamProjectCollection currentCollection = new TfsTeamProjectCollection(new Uri(serverUrl), credentials);
// Get the TFS Identity Management Service
IIdentityManagementService identityManagementService = currentCollection.GetService<IIdentityManagementService>();
// Look up the user that we want to impersonate
TeamFoundationIdentity identity = identityManagementService.ReadIdentity(IdentitySearchFactor.AccountName, username, MembershipQuery.None, ReadIdentityOptions.None);
// Open collection impersonated
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverUrl), credentials, TFSProxyCredentials, identity.Descriptor);
//For example we can access to service WorkItemStore
var workItemStore = tfs.GetService<WorkItemStore>();
Tfspreview.com現在支持基本身份驗證,這將消除IE的顯示。 有關如何為tfspreview.com進行設置,然后使用您配置的用戶名和密碼的詳細信息,請參閱此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.