TF30063:您未经授权..编程访问不起作用



此答案中提供的下面提供的代码确实有效,但现在它投掷 microsoft.team -foundation.team -foundationserverunauthorizedException:'tf30063:'tf30063:您无权授权访问访问https://{mySite} .visualstudio.com/.'再次。

var credentials = new VssClientCredentials();
credentials.PromptType = CredentialPromptType.PromptIfNeeded;
var teamProjects = new TfsTeamProjectCollection(tfsCollectionUri, credentials);
teamProjects.EnsureAuthenticated();         // exception thrown

q 如何解决此问题?

update 奇怪,

  1. 在执行teamProjects.EnsureAuthenticated();之前,调试器读取PromptIfNeeded的CC_2。
  2. 例外之后,调试器停止了执行,它为DoNotPrompt读取CC_4。

观察上面的代码在控制台应用程序中非常有效,但无法在Windows表单应用程序中工作(即,它引发了异常)。

Q1 如何使上面的代码在Windows表单应用程序中工作?

如果在Task中执行上面的代码(即单独的线程),则它只是可行的。如果凭据不存在或在注册表中的位置(请参阅此答案)打开窗口,您可以对自己进行身份验证。

谁能解释为什么这有效?

vs添加了一个注册表条目来存储凭据,请尝试在以下路径中删除该条目:

hkey_current_user software Microsoft vscommon vscommon 14.0 clientervices tokenStorage visualstudio visualstudio vssapp

更新:

另外,请尝试以下代码查看是否有效:

 var credentials = new VssClientCredentials();
 credentials.PromptType = CredentialPromptType.PromptIfNeeded;
 credentials.Storage = new VssClientCredentialStorage(storageKind: "VssApp2", storageNamespace: "VisualStudio");
 var aTeamProjects = new TfsTeamProjectCollection(new Uri("https://xxxxx.visualstudio.com/"), credentials);
 aTeamProjects.EnsureAuthenticated();

最新更新