我如何向
TfsTeamProjectCollectionFactory.GetTeamProjectCollection
提供凭据?我一直在尝试这个方法
Uri tpcAddress= new Uri("https://myserver.visualstudio.com/DefaultCollection");
TfsConnection tfsc = new TfsConfigurationServer(tpcAddress,
new NetworkCredential("[email protected]", "password"));
TfsWebClient wc = new TfsWebClient(tfsc);
tfsc.Connect(ConnectOptions.IncludeServices);
第二次尝试使用从 ICredentialsProvider 派生的自定义类
ICredentialsProvider prov = new myCredentials();
var tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tpcAddress, prov);
tpc.EnsureAuthenticated();
tpc.Authenticate();
public class myCredentials : ICredentialsProvider
{
public ICredentials GetCredentials(Uri uri, ICredentials failedCredentials)
{
return new NetworkCredential("[email protected]", "password");
}
public void NotifyCredentialsAuthenticated(Uri uri)
{
}
}
但它只在我的机器上工作,因为我登录了 tfs。
为避免系统提示您使用 Live ID 登录或必须已登录,您需要启用备用登录凭据并将其用于您的服务。
这篇博文告诉您如何:
请注意,您需要安装 VS 2012 Update 1 才能使用此功能。
希望这有帮助。
我最近找到了这个解决方案:
NetworkCredential netCred = new NetworkCredential(user,pass);
BasicAuthCredential basicCred = new BasicAuthCredential(netCred);
TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred);
tfsCred.AllowInteractive = false;
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(path), TFSCred);