0

コードが2行目に入ると、WindowsはTFSアクセスのユーザー名とパスワードを入力するためのポップアップを表示します。

TeamProjectCollection = new TfsTeamProjectCollection(new Uri(url), new UICredentialsProvider());
TeamProjectCollection.Connect(Microsoft.TeamFoundation.Framework.Common.ConnectOptions.IncludeServices);
TeamProjectCollection.EnsureAuthenticated();
IsConnected = true;

Windowsのポップアップからログインせずにユーザー名とパスワードを自動的に割り当てる方法があります。

ありがとう。

4

1 に答える 1

0

ユーザー資格情報を直接挿入し、プロセスが実行しているものを使用しない場合は、次のことがうまくいきました。

WindowsCredential credentials = new WindowsCredential(new NetworkCredential(username, domain, password), new MyCredentials(username, domain, password));
TfsTeamProjectCollection connectedTPC = new TfsTeamProjectCollection(tfsUrl, new TfsClientCredentials(credentials));

資格情報を 2 回提供するのは少し奇妙ですが、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
}
于 2013-03-08T14:55:26.487 に答える