【问题标题】:Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential does not take 2 parameters?Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential 不带 2 个参数?
【发布时间】:2016-09-23 11:04:51
【问题描述】:

我在我的代码中使用 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 

谁知道我做错了什么?

谢谢

【问题讨论】:

  • 我在使用 UserCredential 时没有遇到这个错误,你能提供更多代码吗?错误很奇怪,您正在新建一个 Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential 而错误显示 Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential.UserCredential 具有无效参数?
  • 使用 UserPasswordCredential,因为它继承了 UserCredential。

标签: c# azure adal


【解决方案1】:

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

示例

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多