Tfs 具有访问令牌的非https VssConnection-是否禁用所需的安全连接?

Tfs 具有访问令牌的非https VssConnection-是否禁用所需的安全连接?,tfs,Tfs,在我们的内部网络中使用TFS,我们希望通过访问令牌以编程方式签入更改,但得到以下结果:InvalidOperationException基本身份验证需要与服务器的安全连接。有没有办法关闭需要安全连接的设备 var basicCreds = new VssBasicCredential(string.Empty, BuildUnitTestConstants.AccessToken); var connection = new VssConnection(new Uri(BuildUnitTest

在我们的内部网络中使用TFS,我们希望通过访问令牌以编程方式签入更改,但得到以下结果:InvalidOperationException基本身份验证需要与服务器的安全连接。有没有办法关闭需要安全连接的设备

var basicCreds = new VssBasicCredential(string.Empty, BuildUnitTestConstants.AccessToken);
var connection = new VssConnection(new Uri(BuildUnitTestConstants.ProjectUri), basicCreds);
var sourceControlServer = connection.GetClient<TfvcHttpClient>();
var basicCreds=new-VssBasicCredential(string.Empty,BuildUnitTestConstants.AccessToken);
var connection=new-VssConnection(新Uri(BuildUnitTestConstants.ProjectUri),基本红色);
var sourceControlServer=connection.GetClient();

不,这是不可能的。在不安全连接上启用PAT的问题是,任何人都可以轻松拦截令牌,并将其用于自己的目的


强烈建议在TSF实例上启用SSL。或者使用Windows身份验证通过不安全的通道对TFS使用安全形式的身份验证。

嗯,这是可能的,尽管不建议这样做;我也需要它,因为内部it部门不会用HTTPS安装TFS(悲惨的故事)。此外,对于测试场景,它也非常方便

像往常一样,YMMV和我对您不应该使用它时发生的事情不负责;-)您已收到警告。

例如,您不能简单地使用.NET客户端API,而是直接使用
HttpClient
,并手动将PAT放入URL以访问REST API,例如:

 http://<WHATEVER>:<BASE64PAT>@<instance>/_apis/...
然后使用此类创建VssCredentials:

var credentials = new PatCredentials("", personalAccessToken);
var connection = new VssConnection(serverUrl, credentials);

(无耻的插头我在我的电脑中使用它)。

现在你不需要使用@Christian.K提供的解决方法

只需设置以下环境变量:

VSS_ALLOW_UNSAFE_BASICAUTH=true
来源:Microsoft.VisualStudio.Services.Common.VssBasicCredential的代码

受保护的覆盖IssuedTokenProvider OnCreateTokeProvider(
Uri服务器URL,
IHTTPRESSponse响应)
{
布尔结果;
if(serverUrl.Scheme!=“https”&(!bool.TryParse(Environment.GetEnvironmentVariable(“VSS_ALLOW_UNSAFE_BASICAUTH”)?“false”,out result)| |!result))
抛出新的InvalidOperationException(CommonResources.BasicAuthenticationRequiresSL());
返回(IssuedTokenProvider)新的BasicAuthTokenProvider(此,服务器URL);
}

您可以使用Windows身份验证而不是PAT吗?启用不安全的基本身份验证是一个非常糟糕的主意,因为凭据是以明文传输的。明白了,这是在我们的tfs构建过程的末尾。这是一个临时令牌,但我理解他们为什么不希望允许非安全的…好的,这是可行的。这会让我痛不欲生,但确实有效。@jessehouwing哦,是的,“痛不欲生”经常发生在那些不关心基本要素的大部队中。这会简化事情
VSS_ALLOW_UNSAFE_BASICAUTH=true