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