cuongle
cuongle

Reputation: 75306

ADAL.NET v3 does not support AcquireToken with UserCredential?

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

Answers (4)

wh-dev
wh-dev

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

Taylor Maxwell
Taylor Maxwell

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

Kanishk Panwar
Kanishk Panwar

Reputation: 1105

Use UserPasswordCredential class instead which is a subclass of UserCredential

Upvotes: 26

dstrockis
dstrockis

Reputation: 1193

Try UserPasswordCredential, the class had to be renamed in v3.

Upvotes: 3

Related Questions