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