私は、ユーザーがAzure AD v2.0に対してサインインおよびサインアウトできるWPFデスクトップアプリケーションでMSALを使用しています。 Microsoft's Graph access sampleと私はin this functionのように、ログアウトするPublicClientApplication.Remove(IUser)
を使用して参照他の例のほとんど:Remove(IUser)
は、そのユーザのMSALのキャッシュとそのトークンを削除しますように、私が見ることができるものから、デスクトップアプリケーションでAzure AD 2.0/MSALからサインアウトするにはどうすればいいですか?
//(from Microsoft's example)
/// <summary>
/// Sign out the current user
/// </summary>
private void SignOutButton_Click(object sender, RoutedEventArgs e)
{
if (App.PublicClientApp.Users.Any())
{
try
{
App.PublicClientApp.Remove(App.PublicClientApp.Users.FirstOrDefault());
this.ResultText.Text = "User has signed-out";
this.CallGraphButton.Visibility = Visibility.Visible;
this.SignOutButton.Visibility = Visibility.Collapsed;
}
catch (MsalException ex)
{
ResultText.Text = $"Error signing-out user: {ex.Message}";
}
}
}
は、それが見えますが、それはしていません実際にユーザーに署名しているようだ。私のアプリケーションに再びログインしようとすると、前のユーザーは「サインイン」と表示され、再度クリックするとそのユーザーとしてログインします。 Logout does not work when using Microsoft Authentication Library (MSAL)私は、MSALの現在の状態があれば、手動でログアウトする必要があると思います。
私は(それがRemove(IUser)
どのように見えるかやっている)サインアウトアプリのローカルレコードを削除関与させるべきであると言うthis Microsoft oneなどのWebアプリのチュートリアルの多くを発見した、とも
GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
しかし、私のアプリはウェブブラウザではないので、そのリクエストをどうすればいいのか分かりません。 MSALの使用中にどうすれば本当にログアウトできますか?