Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential不带2个参数?

时间:2016-05-25 17:29:11

标签: c# azure adal

我在代码中使用ADAL。我想要使​​用的一件事是使用不同的凭据,因此我可以在控制台程序中针对Azure AD授权不同的用户。

Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential cred = new Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential("username", "password");

这是我用来创建用户凭据的行。我用nuget获取最新的ADAL。但是,此行显示错误:

  

最佳重载方法匹配Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential.UserCredential(string,Microsoft.IdentityModel.Clients.ActiveDirectory.UserAuthType)'有一些无效的论点

然而,根据 https://msdn.microsoft.com/en-us/library/microsoft.identitymodel.clients.activedirectory.usercredential.aspx

UserCredential(String, String)
Constructor to create credential with client id and secret 

任何人都知道我做错了什么?

由于

1 个答案:

答案 0 :(得分:20)

ADAL .NET v3 UserCredential Constructor中不再支持第二个参数(password),而是需要使用UserPasswordCredential class

示例

var credentials = new UserPasswordCredential(userName, password);
var context = new AuthenticationContext(authorityUri);
var authResult = context.AcquireTokenAsync(resource, clientId, credentials).Result;