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

时间:2016-05-26 16:06:10

标签: c# azure azure-active-directory adal

在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解决此问题?

4 个答案:

答案 0 :(得分:24)

使用UserPasswordCredential类代替UserCredential

的子类

答案 1 :(得分:3)

尝试UserPasswordCredential,必须在第3版中重命名该类。

答案 2 :(得分:3)

仅供参考,似乎他们已从ADAL中删除了此功能。 source

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

发布到:

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}
请求中的

答案 3 :(得分:2)

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

解决此问题