我在我的应用程序中使用shibboleth身份验证,当用户单击Logout按钮时,他将被定向到〜/ Shibboleth.sso / Logout链接,单击按钮时似乎成功,但如果我尝试登录再次使用shibboleth,它不会重定向到Shibboleth登录页面!相反,它显示以前登录的用户(我已经注销)。 因此,即使注销后,会话似乎仍然存在! 但是,如果再次登录之前,我关闭了浏览器,用户将被正常重定向到Shibboleth登录页面。 所以它似乎是会话状态或cookie问题! 我使用以下代码来解决它:
if (Request.Cookies["shibsession"] != null)
{
HttpCookie myCookie = new HttpCookie("shibsession");
myCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(myCookie);
}
Response.Redirect("~/Shibboleth.sso/Logout");
但它不起作用! 任何人都可以帮忙吗?
答案 0 :(得分:1)
服务提供商处的URL Shibboleth.sso / Logout无法控制IdP的会话,也无法控制。它可以发送SAML注销请求,或发出专有重定向。
最佳实践:Logout处理程序应由Identity provider处理。
关闭浏览器只是在注销后的选项。注销不能大规模地工作,除非浏览器供应商合作并且只是自己做,否则它永远不会。那么你 可以假设关闭浏览器是唯一的选择,但仍然如此 需要在最新的浏览器Chrome或Firefox上清除Cookie。