2013-03-05 2 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

При запросе учетных данных это означает, что учетные данные, в которых работает процесс, не имеют разрешения на сервер. –

ответ

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 
}