即使清除缓存并从Credential Manager中删除,VS也会记住TFS凭据

时间:2015-12-28 08:48:33

标签: c# visual-studio visual-studio-2012 tfs credentials

我写了一个连接到TFS的小型Winform程序。 我的问题是我总是成功连接到TFS,即使我写错了凭据,仍然在调试模式下我看到我的实际凭证被使用。

我看到了一个类似的问题here并完全按照建议完成,从Credential Manager中删除了我的TFS凭据,仍然没有运气(是的,我确实退出并重新打开VS)。 我还注销了TFS本身并删除了visual studio上的连接。 此外,我删除了建议here的缓存文件夹。

我的代码看起来像这样:

folderPath=@"$/TFS_PATH";

cred = new NetworkCredential(ConfigurationManager.AppSettings["user"], ConfigurationManager.AppSettings["pass"]);

tfs = new TeamFoundationServer("CollectionPath", cred);

tfs.EnsureAuthenticated();

MessageBox.Show("tfs.EnsureAuthenticated() succeeded");

代码的一些解释:

cred是NetworkCredential

的一个实例

tfs是TeamFoundationServer的一个实例

用户名和密码位于app.config中。不知何故,它完全忽略它,并使用我的真实凭据。

有谁知道我还能做什么?我的目标是通过app.config中存储的用户名和密码从任何计算机/服务器启用TFS连接,而不是依赖于已经存储在机器上的凭证。

由于

2 个答案:

答案 0 :(得分:0)

您必须删除两个凭据。一个在#34; Windows Credentials"下,另一个在" Generic Credentials"。

它会自动使用已登录的Windows用户的凭据。

您应该使用要用于连接到TFS的crendetials运行Visual Studio。有关详细信息,请参阅https://social.msdn.microsoft.com/Forums/vstudio/en-US/a239a959-1c01-4592-a754-f6fc7d5a9b94/change-user-when-i-connect-to-team-foundation-server?forum=tfsgeneral

答案 1 :(得分:0)

问题是我没有正确地与VS断开连接。 删除连接是不够的。 我需要验证我已退出:打开VS,点击"连接到Team Foundation ..."然后点击"退出"在弹出窗口的左下角。 那就是它。

相关问题