У меня ограниченный доступ к серверу 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);