4

に資格情報を提供するにはどうすればよいTfsTeamProjectCollectionFactory.GetTeamProjectCollectionですか?
魔女から独自の WCF サービスを開発しようとしています。TFS に要求し
ます。魔女でモバイルから TFS ファイルを管理したいので、この WCF サービスが必要です。Microsoft.TeamFoundation.* dll を使用できません。

私はこの方法を試してきました

Uri tpcAddress= new Uri("https://myserver.visualstudio.com/DefaultCollection");
TfsConnection tfsc = new TfsConfigurationServer(tpcAddress, 
        new NetworkCredential("mail@example.com", "password"));
TfsWebClient wc = new TfsWebClient(tfsc);
tfsc.Connect(ConnectOptions.IncludeServices);

2 回目は、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("mail@example.com", "password");
    }
    public void NotifyCredentialsAuthenticated(Uri uri)
    {
    }
}

ただし、tfs にログインしているため、自分のマシンでのみ機能します。

4

2 に答える 2

0

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 をインストールする必要があることに注意してください。

お役に立てれば。

于 2013-03-11T20:25:14.877 に答える
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);
于 2014-04-04T19:10:53.453 に答える