我对 TFS 服务器的访问权限有限,所以我打算在代码中使用管理员帐户连接到服务器。我发现当我在未加入域的计算机上部署服务时,它工作得很好,但是在加入域的计算机上部署服务时,它使用集成凭据。非常感谢您的帮助!以下是我的代码。
Uri tfsUri = Common.Helper.GetCollectionUri();
UserCredential userCredential = new UserCredential("administrator", "pass@word1", "zanewill.net");
TfsTeamProjectCollection col = new TfsTeamProjectCollection(tfsUri, userCredential);
TeamFoundationIdentity identity;
col.EnsureAuthenticated();
col.GetAuthenticatedIdentity(out identity);
我想要管理员的凭据,但身份始终是“zanewill”的凭据,这是一个受限域帐户。
UserCredential 的类类似于以下公共类 UserCredential : ICredentialsProvider { private NetworkCredential networkCredential;
public UserCredential(string userName, string password, string domain) {
networkCredential = new NetworkCredential(userName, password, domain);
}
public System.Net.ICredentials GetCredentials(Uri uri, System.Net.ICredentials myCredentials) {
return networkCredential;
}
public void NotifyCredentialsAuthenticated(Uri uri) {
}
}
我像下面的代码一样使用 NetworkCredential,它可以工作,我不知道为什么。
Uri tfsUri = Common.Helper.GetCollectionUri();
var networkCredential = new NetworkCredential("administrator", "pass@word1", "zanewill.com");
TfsTeamProjectCollection col = new TfsTeamProjectCollection(tfsUri,networkCredential);
TeamFoundationIdentity identity;
col.EnsureAuthenticated();
col.GetAuthenticatedIdentity(out identity);