1

情况: 在标准场景中,很容易将到 Visual Studio 中的 TFS 2013 服务器的连接添加到 TFS。“添加团队基础服务器”对话框非常简单,当您和 TFS 服务器在同一个域中时,它可以正常工作。当您再次打开 VS 时,连接会再次自动建立。

现在我们希望将外部开发人员连接到防火墙后面的 TFS。

问题:

简短版本:在通过 AD 凭据连接到 TFS 之前,我需要一种机制来输入用户 ID 和密码(通过 NTML 自动发生)。

长版:我们想使用“反向代理”机制,与 RSA SecurID 硬件密钥结合使用。当开发人员在浏览器中浏览团队项目的 Web 门户时,这可以正常工作。唯一与标准方案不同的是:出现了一个 Web 表单,您必须输入您的 UserId 和 - 不,不是 AD 密码 - SecurID 的密码,6 位数字,它会被更新SecurID 令牌上的每一分钟。这是通过反向代理的 2 因素身份验证。

这在浏览器中可以正常工作,但在 Visual Studio 中却不行(开发人员任务只能在 VS 中执行,例如签出、签入 aso)。所以必须有一个对话框,在 Visual Studio 尝试连接到内部 TFS 之前,您可以在其中输入用户 ID 和密码。但这不是开箱即用的,只是出现一条错误消息,带有 500 HTTP 状态。当然,反向代理机制需要来自 SecurId Key 的这个用户 ID 和密码,你必须手动输入。

问题: 有没有办法更改或实现自定义加载项或其他任何内容,出现一个对话框,我们可以在其中输入用户 ID 和密码?

这必须在两种情况下发生:首先,当您想通过“添加团队基础服务器”对话框将新的 TFS 添加到您的 TFS 列表时。其次,当您打开 Visual Studio 并且它想再次连接到这个已添加的 TFS 时。

连接自身的代码我已经在一个简单的控制台应用程序中,首先将带有用户 ID 和密码的 POST 发送到 TFS(实际上是反向代理身份验证)。一个 cookie 回来了,有了这个 cookie,我可以访问 TFS 的任何 Web 服务,而 VS 也只使用这个 Web 服务。所以我还必须将此 cookie 添加到对 TFS Web 服务的调用中,这意味着必须有一种方法来告诉 Visual Studio TFS“接口”在每个 Web 服务调用中使用这个 cookie。

我搜索了几个小时以寻找是否以及如何可能的提示,所以我希望允许在这里提出这个问题。我检查了自定义源代码控制插件是否会成为这样的钩子,但我相信这种自定义插件中的所有操作都发生在连接之后。我尝试了一个基本的源代码控制插件(来自 VS SDK),它可以工作,我试图捕捉建立连接的方法,这不在这个框架/接口内。

附加说明:我已经在 Microsoft 开了一张 Premier 票,直到现在还没有答案。我认为这很特别,我不确定他们是否能找到可以回答这个问题的专家 ;-)

4

1 回答 1

0

您似乎想在代理服务器后面使用 Visual Studio 2013。代理地址必须在 XML 文件中手动输入:

1.在:(或)中找到devenv.exe.config(devenv.exe配置文件)。%ProgramFiles%\Microsoft Visual Studio 12.0\Common7\IDE%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE

2.在配置文件中,找到<system.net>block,添加如下代码:

 <defaultProxy enabled="true" useDefaultCredentials="true">
     <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
 </defaultProxy>
于 2016-03-22T07:03:31.230 回答