即使在清除缓存并从凭据管理器中删除后,VS 仍会记住 TFS 凭据

VS remembers TFS credentials even after clearing cache and deleting from Credential Manager

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

我看到了一个类似的问题 here 并且完全按照建议做了,从凭据管理器中删除了我的 TFS 凭据,仍然没有运气(是的,我确实退出并重新打开 VS)。 我还注销了 ot 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 中的用户名和密码从任何 computer/server 启用 TFS 连接,而不依赖于已经存储在机器本身上的凭据。

谢谢

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

它自动使用 windows 用户的凭据,即 logged-in。

您应该运行 Visual Studio 使用您想要用来连接到 TFS 的凭据。有关详细信息,请参阅 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

问题是我没有正确断开与 VS 的连接。 删除连接是不够的。 我需要验证我是否已注销:打开 VS,单击 "Connect to Team Foundation...",然后单击弹出窗口 window 左下方的 "sign out"。 就是这样。