2013-03-09 3 views
3

Как я могу предоставить учетные данные TfsTeamProjectCollectionFactory.GetTeamProjectCollection?
Я пытаюсь разработать свою собственную службу WCF от ведьмы Я сделаю запрос к TFS
Мне нужна эта служба WCF, потому что я хотел бы управлять своими файлами TFS с мобильных устройств, ведь я не могу использовать Microsoft.TeamFoundation. * DllПодключение к Visual Studio Team Services из WebService

Я пытался таким образом

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) 
    { 
    } 
} 

Но это работает только я n моя машина, так как я вошел в систему tfs.

+0

Если вы предоставляете собственную службу WCF, почему бы вам не запустить сервис в качестве пользователя (учетной записи службы), который уже аутентификации? – Christoffer

+0

потому, что я пытаюсь сделать эту услугу для мобильных пользователей, чтобы они могли получить доступ редактировать удалить их элементы из их команды сервера – csharpwinphonexaml

ответ

1

Чтобы избежать запроса о входе в систему с вашим идентификатором Live ID или необходимости иметь уже подписанный аккаунт, вам необходимо включить альтернативные учетные данные для входа в систему и использовать его в своей службе.

Этот блог расскажет вам, как:

http://blogs.msdn.com/b/buckh/archive/2013/01/07/how-to-connect-to-tf-service-without-a-prompt-for-liveid-credentials.aspx

Обратите внимание, что вам необходимо иметь VS 2012 Update 1 установлено, чтобы иметь эту функцию.

Надеюсь, это поможет.

+0

фундаментного Учитывая этот контекст: Локальной машины: Visual Studio 2012 с Update 1 Web Server: Неизвестный делает приведенный выше пример работы, если я внедряю библиотеки в свой веб-сервис? – csharpwinphonexaml

0

Я недавно нашел это решение:

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);