Выход из IdentityServer 4 в ASP.NET Core 2 - PullRequest
0 голосов
/ 16 мая 2018

Я использую 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

И код по нажатию кнопки выхода из системы, который я дал в верхней части этого поста.

...