我正在创建一个自定义应用程序,以便在线连接到Visual Studio,由WAAD支持 - 我使用NuGet包(https://www.visualstudio.com/en-us/integrate/get-started/client-libraries/dotnet)
这是我的代码...(传递用户名和密码,但我想提示)
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);
}
如果用户未经过身份验证,我希望Windows Azure Active Directory提示符如下所示......
我怎样才能做到这一点?非常感谢
答案 0 :(得分:1)
不,VssAadCredential类不支持交互式流程以提示提供用户名和密码。你必须传递用户名和密码。
以下是检查对象浏览器中的VssAadCredential类时所得到的内容(引用它作为参考):
要点: 目前,如果不重现VssClientCredentials使用的逻辑,是否允许来自凭证本身的提示是不可能的。由于这是一个通过ADFS使Windows集成身份验证与AAD协同工作的停止间隙解决方案,现在这个类只支持那个非交互流。我们需要评估我们希望在此旧版堆栈中投入多少资金,而不是建议人们转移到VssConnect API以满足将来的身份验证需求。