2013-03-05 48 views
0

当代码运行到2号线,Windows会显示一个弹出输入用户名,密码TFS访问:直接输入用户信息查询时工作项目

TeamProjectCollection = new TfsTeamProjectCollection(new Uri(url), new UICredentialsProvider()); 
TeamProjectCollection.Connect(Microsoft.TeamFoundation.Framework.Common.ConnectOptions.IncludeServices); 
TeamProjectCollection.EnsureAuthenticated(); 
IsConnected = true; 

有什么办法来分配的用户名,密码自动无登录从窗口弹出。

谢谢。

+0

当它提示输入凭据时,这意味着进程正在运行的凭据对服务器没有权限。 – 2013-03-07 13:50:41

回答

0

如果你想直接将用户凭据,而不是使用一个正在运行的进程,以下为我工作:

WindowsCredential credentials = new WindowsCredential(new NetworkCredential(username, domain, password), new MyCredentials(username, domain, password)); 
TfsTeamProjectCollection connectedTPC = new TfsTeamProjectCollection(tfsUrl, new TfsClientCredentials(credentials)); 

这是一个有点奇怪提供凭据两次,但没有MyCredentials我将不会从TFS得到答案,不知道为什么。

public class MyCredentials : ICredentialsProvider 
{ 
    private NetworkCredential credentials; 
    #region ICredentialsProvider Members 
    public MyCredentials(string user, string domain, string password) 
    { 
     credentials = new NetworkCredential(user, password, domain); 
    } 

    public ICredentials GetCredentials(Uri uri, ICredentials failedCredentials) 
    { 
     return credentials; 
    } 

    public void NotifyCredentialsAuthenticated(Uri uri) 
    { 
     // who cares 
    } 

    #endregion 
}