Я использую Identity Server 4 для аутентификации в моем веб-приложении ASP.NET CORE 2.0. Я не могу выйти из системы.
У меня есть ссылка, по нажатию которой я вызываю следующий фрагмент кода в Javascript
var mgr = new Oidc.UserManager(config);
mgr.signoutRedirect();
Приведенный выше код пытается перенаправить к действию выхода из системы (HttpPost) AccountController
в веб-приложении Identity Server, однако я получаю HTTP 404
. URL, на который я нажимаю, выглядит так:
https://www.demo.com/PIdentity/account/logout?logoutId=CfDJ8Gm9-HlsFDlKoXXEkMIomhRIbKpHhsku9jDUSDrdIYKFhqj-WnfV8T3-KCsZG9D0I_d_u9X0i8x1uFxrjZfOIcjL--W5uSd4VHY2qF7n8iWTmrn_i-mHQWOJlAJ8cZFcia6egupkqNv5-YqKyq1A_Rb2GTt3yeiTMX58UHyz96-FtcOPN6h07fA78W-Z_uRZefuvb2ocnWT9UHQsqS7T-IAyurOnnjLq97CbjGoDiCy99bnBlHm-1jPPc4F5NkQD8Q8NcIVQc2vg1M5VcxX4Ms7TCem-b3nAVlW8PWJq4aLdgvnatLBAoTzWjPdO6sD_wNarpUqxAX7ZqXHDECuP49g01BenW1zdsi75QLs3qihG
Метод действия также не попадает в Fiddler.
Мой AccountController имеет действие выхода из системы, как показано ниже:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync().ConfigureAwait(false);
_logger.LogInformation("User logged out.");
return RedirectToAction(nameof(HomeController.Index), "Home");
}
Может ли кто-нибудь, пожалуйста, вести меня.
Ниже приведен код, который у меня есть в моем JS
var config = {
//authority: "https://localhost:44326/",
authority: "https://www.demo.com/DemoIdentity/",
client_id: "sett.web.js",
redirect_uri: window.location.origin + "/callback.html",
post_logout_redirect_uri: window.location.origin + "/DemoWeb/Dashboard",
// these two will be done dynamically from the buttons clicked, but are
// needed if you want to use the silent_renew
response_type: "id_token token",
scope: "openid profile api1",
// this will toggle if profile endpoint is used
loadUserInfo: true,
// silent renew will get a new access_token via an iframe
// just prior to the old access_token expiring (60 seconds prior)
silent_redirect_uri: window.location.origin + "/DemoWeb/silent.html",
automaticSilentRenew: true,
// will revoke (reference) access tokens at logout time
revokeAccessTokenOnSignout: true,
filterProtocolClaims: false
};
var mgr = new Oidc.UserManager(config);
var access_token = ""
Oidc.Log.logger = window.console
И код по нажатию кнопки выхода из системы, который я дал в верхней части этого поста.