Reputation: 75306
In ADAL.NET 2.x, we use the below code to acquire token from Azure AD using UserCredential
and it works perfectly:
var authContext = new AuthenticationContext(Authority);
var userCredential = new UserCredential(username, password);
var token = authContext.AcquireToken(ResourceUrl, ClientId, userCredential);
When I upgraded ADAL.NET v3 today, the code cannot be compiled anymore because on the new version, UserCredential
does not have overloaded constructor with username and password.
How I can workaround this with the new version of ADAL.NET v3?
Upvotes: 17
Views: 10937
Reputation: 547
FYI, it seems as though they have removed this functionality from ADAL. source
To authenticate with a users username/password combo, I believe you will have to use HttpClient and make the post request yourself.
Post to:
https://login.microsoftonline.com/yourdomain.onmicrosoft.com/oauth2/token
with:
resource={resource}&client_id={clientid}&grant_type=password&username={username}&password={password}&scope=openid&client_secret={clientsecret}
in the request
Upvotes: 3
Reputation: 146
This fixes the issue for the UserCredentials, but you also seems to be a change to the AuthenticationContext type which no longer seems to have an AcquireToken method. You can address this by using AcquireTokenAsync
Upvotes: 2
Reputation: 1105
Use UserPasswordCredential
class instead which is a subclass of UserCredential
Upvotes: 26