更新資格情報セット2を使用してデスクトップにリモート接続するためのアクセス許可をユーザーに付与し、保存されている資格情報を資格情報マネージャーから削除できるようにすることで、問題を解決できました。
1セットの資格情報を使用してサーバーにログオンし、[別のユーザーとして実行]を使用してVisual Studio 2012を開きます(Shift + Right-click)開発者にデプロイするために2番目の資格情報のセットが必要なため。環境SharePointサイト。
以前に上記を実行し、ユーザー(2番目の資格情報)がまだアクセスできないため、3番目の資格情報セットを使用してTFSに接続しました。これで、ユーザーがアクセスできるようになり、代わりにこれらの資格情報を使用したいと思います。
「別のユーザーとして実行」を使用してVSを開くたびに、TFSは3番目に設定された資格情報を使用して自動的にログインします-ただし、「別のユーザーとして実行」を使用せずにVSを通常どおり開くと、にログインするように求められます。 TFS。
Windowsの資格情報を確認しようとしましたが、何もありません。また、リモートデスクトップを使用してサーバーにアクセスできるのは最初のセットのみであるため、2番目のセットの資格情報を使用してサーバーにログオンすることはできません。
では、「別のユーザーとして実行」を使用するときに、キャッシュされたTFS資格情報を「クリア」するにはどうすればよいですか?
コントロールパネル>ユーザーアカウント>資格情報の管理>チームファンデーションサーバーを選択し、削除/編集-ビオラを選択します。次回チームエクスプローラーに入ると、新しい資格情報のセットの入力を求められます。
ここで手動でキャッシュをクリアしてみることができます:
C:\ Users [USERNAME]\AppData\Local\Microsoft\Team Foundation\5.0\Cache
/ profile parameter を使用して、実行時にユーザー名のプロファイルを指定することもできます。
Runas /profile /user:[DOMAIN]\[administrator] "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe"
私にとっては、ユーザー名/パスワードではなく、キャッシュされたユーザー名が問題でした。そして、そのISはキャッシュのVersionControl.configに保存されています。そのファイルをたたくだけで、TFSは古い電子メールへの接続を停止できました。
Windowsアカウント(TFSが接続されているActive Directoryにあります)とは別のアカウントとしてローカルTFSにログインする必要がある場合にも同様の問題が発生しましたが、マネージャーに資格情報が表示されませんでした。
解決策は、VS内で切断することでした(メニューチーム->切断)。次に、資格情報マネージャーで、Windowsユーザーと同じユーザーでWindowsアカウントを作成しますが、パスワードが正しくありません。 URL /サーバーは単なる「tfs」でした(ポートなどはありません)。
VSを起動すると、TFSへのログインに失敗し、正しいパスワードとユーザー名も要求されます。次に、これを別のユーザーに変更し、次回はVSのデフォルトをこれに変更できます。
私もこの問題に遭遇しましたが、AppData設定をクリアしても役に立ちませんでした。
TFSに接続するためのコンソールアプリケーションを作成しましたが、最初に実行したときに資格情報の入力を求められました。その後、資格情報が保存され、私が提供した他の資格情報よりも優先されます。私はついに、VSが次の場所にレジストリエントリを追加したことを理解しました。
HKEY_CURRENT_USER\Software\Microsoft\VSCommon\14.0\ClientServices\TokenStorage\VisualStudio\VssApp
キーの削除は機能しましたが、プログラムで同じことを実行できることも発見しました。
var clientCredentails = new VssClientCredentialStorage();
// URI of the target TFS server
var tfsUri = new Uri("https://[username].visualstudio.com/DefaultCollection/");
// Find the cached credentials
var federatedCredentials = clientCredentails.RetrieveToken(tfsUri, VssCredentialsType.Federated);
// Remove the credentials from the cache
clientCredentails.RemoveToken(tfsUri, federatedCredentials);