Azure ActiveDirectoryはASP.NETCore 2.1MVCを使用してログアウトしません



Azure Active Directory Wont Logout Using Asp



解決:

AzureAD認証をASP.NETCore 2.1MVCアプリケーションに追加する方法を確認してください。ツールが認証コードを追加します。サインイン/サインアウトボタンをメソッドにバインドする必要があります。

1. [接続されたサービス]-> [Azure ActiveDirectoryでの認証]を選択します。



ここに画像の説明を入力してください

2.ログインページをトリガーするためのログインボタンを提供する必要があります。



ここに画像の説明を入力してください

3.ドメインのテナント名を入力し、アプリケーション設定を提供する方法を選択します。

ここに画像の説明を入力してください



4. [完了]ボタンをクリックして構成を完了します。

5.削除Startup.csのapp.UseBrowserLink()。

6.電話のSignOut()メソッドAccountController.csを使用して、ユーザーをサインアウトします。それはうまくいきます。

[HttpGet] public IActionResult SignOut(){var callbackUrl = Url.Action(nameof(SignedOut)、 'Account'、values:null、protocol:Request.Scheme); SignOut(new AuthenticationProperties {RedirectUri = callbackUrl}、CookieAuthenticationDefaults.AuthenticationScheme、OpenIdConnectDefaults.AuthenticationScheme);を返します。 } 

あなたが使用しているのでMicrosoft.AspNetCore.Authentication.AzureAD.UIライブラリ、ユーザーを直接リダイレクトできますhttps:// localhost:xxxxx / AzureAD / Account / SignOut for sign out、ソースコード:

[HttpGet( '{scheme?}')] public IActionResult SignOut([FromRoute]文字列スキーム){スキーム=スキーム?? AzureADDefaults.AuthenticationScheme; var options = Options.Get(scheme); var callbackUrl = Url.Page( '/ Account / SignedOut'、pageHandler:null、values:null、protocol:Request.Scheme); SignOut(new AuthenticationProperties {RedirectUri = callbackUrl}、options.CookieSchemeName、options.OpenIdConnectSchemeName);を返します。 }

これで、を削除できますOnRedirectToIdentityProviderForSignOutイベント。