ADAL.NET v3不支持使用UserCredential的AcquireToken吗?

在ADAL.NET 2.x中,我们使用以下代码使用UserCredential从Azure AD获取令牌,它完美地运行:

  var authContext = new AuthenticationContext(Authority); var userCredential = new UserCredential(username, password); var token = authContext.AcquireToken(ResourceUrl, ClientId, userCredential); 

当我今天升级ADAL.NET v3时,代码无法再编译,因为在新版本中, UserCredential没有使用用户名和密码重载构造函数。

我如何使用新版本的ADAL.NET v3解决这个问题?

使用UserPasswordCredential类,而不是UserCredential的子类

仅供参考,似乎他们已从ADAL中删除了此function。 资源

要使用用户名/密码组合进行身份validation,我相信您必须自己使用HttpClient并发布post请求。

发布到:

 https://login.microsoftonline.com/yourdomain.onmicrosoft.com/oauth2/token 

有:

 resource={resource}&client_id={clientid}&grant_type=password&username={username}&password={password}&scope=openid&client_secret={clientsecret} 

在请求中

尝试UserPasswordCredential ,必须在v3中重命名该类。

这解决了UserCredentials的问题,但您似乎也是对AuthenticationContext类型的更改,它似乎不再具有AcquireToken方法。 您可以使用AcquireTokenAsync解决此问题