web-dev-qa-db-ja.com

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の新しいバージョンでこれを回避するにはどうすればよいですか?

15
cuongle

代わりに、UserCredentialのサブクラスであるUserPasswordCredentialクラスを使用してください

24
Kanishk Panwar

参考までに、ADALからこの機能を削除したようです。 ソース

ユーザーのユーザー名とパスワードの組み合わせで認証するには、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
Cameron W.

UserPasswordCredentialを試してください。クラスはv3で名前を変更する必要がありました。

3
dstrockis

これにより、UserCredentialsの問題が修正されますが、AuthenticationContextタイプが変更されて、AcquireTokenメソッドがなくなったようです。 AcquireTokenAsyncを使用してこれに対処できます

2
Taylor Maxwell