Visual studio 2015 如何在使用API连接到VSO时提示用户提供凭据?通过VssAadCredential

Visual studio 2015 如何在使用API连接到VSO时提示用户提供凭据?通过VssAadCredential,visual-studio-2015,azure-devops,tfs-sdk,Visual Studio 2015,Azure Devops,Tfs Sdk,我正在创建一个自定义应用程序以连接到Visual Studio online,由WAAD支持-我正在使用NuGet软件包() Microsoft.TeamFoundationServer.Client Microsoft.VisualStudio.Services.InteractiveClient 这是我的代码…(输入用户名和密码有效,但我希望得到提示) 如果用户未经身份验证,我希望Windows Azure Active Directory提示符显示如下 我怎样才能做到这一点?非常感谢

我正在创建一个自定义应用程序以连接到Visual Studio online,由WAAD支持-我正在使用NuGet软件包()

  • Microsoft.TeamFoundationServer.Client
  • Microsoft.VisualStudio.Services.InteractiveClient
这是我的代码…(输入用户名和密码有效,但我希望得到提示)

如果用户未经身份验证,我希望Windows Azure Active Directory提示符显示如下


我怎样才能做到这一点?非常感谢

不,VssAadCredential类不支持提示提供用户名和密码的交互流。您必须传递用户名和密码

以下是我在对象浏览器中检查VssAadCredential类时得到的结果(引用它以供参考):

总结:
目前,如果不复制VssClientCredentials使用的逻辑,就无法从凭证本身获取是否允许提示。由于这是一个权宜之计,可以让Windows集成身份验证通过ADFS针对AAD工作,因此目前此类仅支持该非交互式流。我们需要评估我们希望在这个遗留堆栈上投资多少,而不是建议人们为了将来的身份验证需要使用VssConnect API。

好的,谢谢你的帖子-我想我应该调查一下VssConnect API-你有没有一个例子可以说明如何连接到Visual Studio Online?
        VssAadCredential aadcred = new VssAadCredential();
        VssCredentials cred = new VssCredentials(aadcred);
        cred.PromptType = CredentialPromptType.PromptIfNeeded;

        Microsoft.TeamFoundation.Build.WebApi.BuildHttpClient buildClient =
            new Microsoft.TeamFoundation.Build.WebApi.BuildHttpClient(new Uri("https://myproject.visualstudio.com/DefaultCollection/"), cred);

        var result = buildClient.GetBuildsAsync("My Project");

        foreach (var item in result.Result)
        {
            Debug.WriteLine(item.Definition.Name);
        }