3

TeamFoundationServer .net コントロールを使用して、C# でホストされたTFS サービス アカウントに認証しようとしています。これが私のコードです。

NetworkCredential tfsCredential = new NetworkCredential(username, password);
TeamFoundationServer tfsServer = new TeamFoundationServer(tfsAddress, tfsCredential);

tfsServer.Authenticate();

これはオンプレミスの TFS サーバーではなく、 tfspreview.comでホストされている TFS サービスであり、Windows Live アカウントと別の認証資格情報を使用してサインインしようとしますが、認証を試みるたびに Internet Explorer が開きます。新しいウィンドウを開き、資格情報を要求します。

IE プロンプトを使用して接続すると機能しますが、資格情報を保存し、毎回資格情報を要求せずにサーバーに接続したい場合、

4

3 に答える 3

1

プロファイルで基本認証を構成するか、サービス資格情報を使用できます。それはすべて、必要な許可の種類によって異なります。基本認証はユーザー アカウントで動作しますが、これは、サービス アカウントが昇格された権限を持っている場合、悪い習慣になる傾向があります。

TF Service の基本認証を構成する

基本的なユーザー認証の場合、TF サービスに接続し、示されているようにプロファイルを開く必要があります。プロファイルには「資格情報」タブがあり、これらの資格情報を構成できます。これは、API を介したユーザーごとのアクセスには適していますが、サーバーまたはサービスを介して実行する場合には適していません。

TF Service の基本認証を構成する

TFS サービス資格情報の取得

私は、TF Service インスタンスのサービス資格情報を取得できるTFS Service Credential Viewerというアプリケーションを作成しました。これは、Build & Test サーバーがクラウドに対して動作するようにローカルで構成する場合と同じことです。

TFS サービス資格情報の取得

これが役立つことを願っています...

于 2013-07-30T23:13:03.780 に答える
0

サーバーの偽装に基づいてこのコードを試すことができます

var serverUrl  = "";

ICredentials credentials = new NetworkCredential(username, password, domain);
ICredentialsProvider TFSProxyCredentials = new NetworkCredentialsProvider(credentials);

TfsTeamProjectCollection currentCollection = new TfsTeamProjectCollection(new Uri(serverUrl), credentials);


// Get the TFS Identity Management Service
IIdentityManagementService identityManagementService = currentCollection.GetService<IIdentityManagementService>();
// Look up the user that we want to impersonate
TeamFoundationIdentity identity = identityManagementService.ReadIdentity(IdentitySearchFactor.AccountName, username, MembershipQuery.None, ReadIdentityOptions.None);


// Open collection impersonated
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverUrl), credentials, TFSProxyCredentials, identity.Descriptor);

//For example we can access to service WorkItemStore 
var workItemStore = tfs.GetService<WorkItemStore>();
于 2012-09-07T15:50:29.383 に答える
0

Tfspreview.com は、基本認証をサポートするようになりました。これにより、IE がまったく表示されなくなります。tfspreview.com でこれを設定し、構成したユーザー名とパスワードを使用する方法の詳細については、こちらを参照してください。

于 2012-09-08T14:58:25.713 に答える