0

我在我的应用程序中使用 shibboleth 身份验证,当用户单击注销按钮时,他将被定向到 ~/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");

但它不工作!任何人都可以帮忙吗?

4

1 回答 1

1

服务提供商处的 URL Shibboleth.sso/Logout 无法控制 IdP 的会话,也无法控制。它可以发送 SAML 注销请求,或发出专有重定向。

最佳实践:注销处理程序应由身份提供者处理。

注销后关闭浏览器是唯一的选择。注销不能大规模工作,除非浏览器供应商合作并自己做,否则永远不会。因此,您可以假设关闭浏览器是唯一的选择,并且仍然需要清除最新浏览器 Chrome 或 Firefox 上的 cookie。

于 2013-08-14T09:06:35.720 回答