Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2013:使用RSA SecurID连接到TFS-自定义实现还是配置?_C#_Visual Studio_Tfs_Reverse Proxy_Securid - Fatal编程技术网

C# Visual Studio 2013:使用RSA SecurID连接到TFS-自定义实现还是配置?

C# Visual Studio 2013:使用RSA SecurID连接到TFS-自定义实现还是配置?,c#,visual-studio,tfs,reverse-proxy,securid,C#,Visual Studio,Tfs,Reverse Proxy,Securid,情况: 在标准场景中,很容易将到Visual Studio内TFS 2013服务器的连接添加到TFS。对话框“添加Team Foundation Server”非常简单,当您和TFS服务器处于同一域时,这工作很好。当您再次打开VS时,连接将再次自动建立 现在,我们希望将外部开发人员连接到防火墙后面的TFS 问题: 简短版本:我需要一种机制,在通过AD凭据(在NTML中自动发生)连接到TFS之前输入用户ID和密码短语 长版本:我们希望使用“反向代理”机制,与RSA SecurID硬件密钥结合使用。

情况: 在标准场景中,很容易将到Visual Studio内TFS 2013服务器的连接添加到TFS。对话框“添加Team Foundation Server”非常简单,当您和TFS服务器处于同一域时,这工作很好。当您再次打开VS时,连接将再次自动建立

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

问题:

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

长版本:我们希望使用“反向代理”机制,与RSA SecurID硬件密钥结合使用。当开发人员在浏览器中浏览团队项目的Web门户时,这种方法很有效。唯一不同于标准场景的是:出现了一个web表单,您必须输入您的用户ID和(不,不是AD密码)SecurID的密码短语,6位数字,SecurID令牌上每分钟都会更新一次。这是通过反向代理进行的双因素身份验证

这在浏览器中可以正常工作,但在VisualStudio中不行(开发人员任务只能在VS中执行,如签出、签入a.s.o)。因此必须有一个对话框,在VisualStudio尝试连接到内部TFS之前,您可以在其中输入用户ID和密码短语。但这并不是开箱即用的实现,只是出现一条错误消息,状态为500 HTTP。当然,反向代理机制需要SecurId密钥中的这个用户ID和密码短语,您必须手动输入

问题: 是否有一种方法可以更改或实现自定义外接程序,或者出现一个对话框,在其中输入用户ID和密码短语

这必须在两种情况下发生: 首先,当您想通过对话框“添加Team Foundation Server”向TFS列表中添加新的TFS时。 第二,当您打开VisualStudio并希望再次连接到此已添加的TFS时

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

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


附加说明:我已经在微软开了一张卓越理财机票,现在还没有答复。我认为这很特别,我不确定他们是否能找到能够回答这个问题的专家;-)

您似乎希望在代理服务器后面使用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.在配置文件中,找到
块,并添加此代码:

 <defaultProxy enabled="true" useDefaultCredentials="true">
     <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
 </defaultProxy>

您似乎希望在代理服务器后面使用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.在配置文件中,找到
块,并添加此代码:

 <defaultProxy enabled="true" useDefaultCredentials="true">
     <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
 </defaultProxy>


谢谢您的提示。我尝试了各种组合,但都不起作用。主要原因是:反向代理的工作方式与内部web代理不同。反向代理(Forefront TMG)总是显示一个表单,您必须在其中输入用户ID和密码,然后通过POST发送。在这种情况下,VisualStudio无法弹出。有趣的是,如果您连接到VS online,则会显示一个对话框来输入userid/pw。只要尝试连接到“添加TFS”,您就会看到这个对话框。但我无法确定是否可以以及如何使用此功能。如果您删除电脑上存储的所有凭据,并删除TFS服务器,您还将获得登录windows,是否需要此功能?@“Cece-MSTF”现在我发现了问题所在,我正在寻找解决方案:Visual Studio联系人“Visual Studio团队服务”(以前的Visual Studio Online)通过OAuth。我们的反向代理使用Microsoft Forefront统一访问网关(UAG),且OAuth未被使用或激活。因此,我将尝试此方法。成功后,我将发布实施/配置此方法的步骤作为答案。MS Forefront主流支持于2012年11月结束,扩展支持将于2020年结束。这意味着从长远来看,我们必须使用另一种产品(可能是Sophos)谢谢你的提示。我尝试了每种组合,但都不起作用。主要原因是:反向代理不像内部web代理那样工作。反向代理(Forefront TMG)始终显示一个表单,您必须在其中输入userid和密码短语,然后通过POST发送。在这种情况下,Visual Studio无法弹出。有趣的是,如果您连接到VS online,则会显示一个对话框来输入userid/pw。只需尝试使用c