私はAADを使用してクライアントを認証し、Windowsサービスを使用してこれを自動化しようとしています。 AAD .NET SDKには、二つの方法、AcquireTokenAsync
とAcquireToken
がありますが、私は、これらのいずれかの方法を使用することはできませんのawaitの呼び出しが応答なしで永遠に滞在する、と私はこのような何かするとき:ユーザ名とパスワードでAzure Active Directoryトークンを取得
result = authContext.AcquireTokenAsync(resourceHostUri, clientId, new UserCredential(hardcodedUsername, hardcodedPassword)).Result;
をオブジェクトはWaiting for Activation
のステータスを返します& Code 31
..
ここで、ハードコードされたユーザー名とパスワードを使用してトークンを取得することはできますか?
私の完全なコード:
string hardcodedUsername = "username";
string hardcodedPassword = "password";
string tenant = "[email protected]";
string clientId = "clientId";
string resourceHostUri = "https://management.azure.com/";
string aadInstance = "https://login.microsoftonline.com/{0}";
string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
authContext = new AuthenticationContext(authority);
AuthenticationResult result = null;
try
{
result = authContext.AcquireTokenAsync(resourceHostUri, clientId, new UserCredential(hardcodedUsername, hardcodedPassword)).Result;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return result;
私はAzureのAPIへのアクセスを取得しようとしています。
UPDATE 1:
Microsoft.IdentityModel.Clients.ActiveDirectory TokenCacheを::
私は
await
に電話をしようとしたとき、私は出力にこれを得た、私はこれが役立つかもしれないと思う探し... Microsoft.IdentityModel.Clients.ActiveDirectory TokenCache:キャッシュに一致するトークンが見つかりませんでした。 Microsoft.IdentityModel.Clients.ActiveDirectory d__0:ユーザー領域の探索要求を ''に送信しています名 APIバージョン= 1.0' Microsoft.IdentityModel.Clients.ActiveDirectoryのd__4:ハッシュを持つユーザー '?***リンクコード下の連合 '
'async'メソッドを作成し、' authContext.AcquireTokenAsync() 'メソッド呼び出しの前に' await'を置こうとしましたか? –
はい、それは無応答で、私の質問で言及した永遠にかかります –
完全なコード(メソッドのシグニチャとこのメソッドの呼び出し方法を含む)を共有できますか? –