Работает на SSO SSS, а процесс выписки работает отлично. Проблема заключается в том пользователи остаются на той же странице, что вызывает действие выхода из системы, независимо от того, что я это набор для перенаправленияПереадресация выписки ACS не работает
public ActionResult Logout()
{
//Load identity configuration
FederationConfiguration config = FederatedAuthentication.FederationConfiguration;
//Get wtrealm from WSFederationConfiguration Section
string wtrealm = config.WsFederationConfiguration.Realm;
string wreply = wtrealm;
//Read ACS Ws-Federation endpoint from web.config
string wsFederationEndpoint = ConfigurationManager.AppSettings["ida:Issuer"];
SignOutRequestMessage signoutRequestMessage = new SignOutRequestMessage(new Uri(wsFederationEndpoint));
signoutRequestMessage.Parameters.Add("wreply", wreply);
signoutRequestMessage.Parameters.Add("wtrealm", wtrealm);
string signoutUrl = signoutRequestMessage.WriteQueryString();
FederatedAuthentication.WSFederationAuthenticationModule.SignOut();
return this.Redirect(signoutUrl);
}
Чтобы выполнить это действие, страница имеет обработчик щелчка
$('#logout').click(function() {
$.post('@Url.Action("Logout", "Home", new { area = "" })');
});
Щелчок правильно обрабатывается, вызывается и выполняется действие «Выход», но сайт остается на вызывающей странице. В сетевом журнале показан вызов выхода из системы, но нет доказательств того, что при попытке перенаправления выполняется попытка. В попытке отладки я прокомментировал Redirect для signoutURL и попробовал RedirectToAction, RedirectToRoute и javascript-вызов для установки window.location, ни один из которых, похоже, лучше не переносит пользователя на другую страницу. Что мне не хватает?