0
使用ACS SSO,注销过程工作得很好。问题是,用户仍然调用注销操作在同一页上,不管我把它设置为重定向到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 = "" })');
});
点击被正确处理,注销操作被调用并执行,但该网站仍然在呼叫页面上。网络日志显示了注销的调用,但没有证据表明重定向甚至正在尝试。为了进行调试,我已经将重定向注释为signoutURL,并尝试使用RedirectToAction,RedirectToRoute和javascript调用来设置window.location,但在将用户转移到其他页面时似乎没有任何更好的办法。我错过了什么?