我写了一个连接到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连接,而不是依赖于已经存储在机器上的凭证。
由于
答案 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 ..."然后点击"退出"在弹出窗口的左下角。 那就是它。