C# 使用vssClientCredentials进行VSTS身份验证

C# 使用vssClientCredentials进行VSTS身份验证,c#,azure-devops,C#,Azure Devops,我当前正在尝试使用下面的代码连接到VSTS项目,我以前在显示的对话框中输入凭据后已成功连接 if (!IsConnected) { sourceControl = release.SourceControl; connection = new VssConnection(new Uri(sourceControl), new VssClientCredentials()); workItemTrackingHttpClient = connection.GetClient

我当前正在尝试使用下面的代码连接到VSTS项目,我以前在显示的对话框中输入凭据后已成功连接

if (!IsConnected)
{
    sourceControl = release.SourceControl;
    connection = new VssConnection(new Uri(sourceControl), new VssClientCredentials());
    workItemTrackingHttpClient = connection.GetClient<WorkItemTrackingHttpClient>();
}
如果(!未连接)
{
sourceControl=release.sourceControl;
连接=新VssConnection(新Uri(sourceControl),新VssClientCredentials());
WorkItemTrackingTTPClient=connection.GetClient();
}
对话框不再显示,并引发异常:

TF400813:资源不可用于匿名访问。客户 需要身份验证


我不知道任何可能导致此中断的更改,请提供任何帮助。

您可以从注册表中删除缓存的凭据:
Computer\HKEY\u CURRENT\u USER\Software\Microsoft\VSCommon\14.0\ClientServices\TokenStorage\VisualStudio
(deleteVssApp键)

您还可以指定凭据存储:

var c = new VssClientCredentials();
c.Storage = new VssClientCredentialStorage(storageKind: "VssApp2", storageNamespace: "VisualStudio");
connection = new VssConnection(new Uri(sourceControl), c);

我还想向其他对此有问题的人补充一点,我们也有问题,因为这个调用不在它自己的单独线程中,在我们的应用程序的一部分中,这将抛出相同的错误message@Chris:该注册表项也在我们团队中造成了一些混乱。它的存在意味着一些用户根本不需要重新验证。MSFT的人解释说,密钥是由VS2015和ExtendClient库创建的(我假设是NuGet库,可能还有TF.exe,但我不确定最后一点)。