2013-07-02 4 views
0

Я использую аутентификацию shibboleth в своем приложении, и когда пользователь нажимает кнопку «Выход», он будет перенаправлен на ссылку ~/Shibboleth.sso/Logout, она кажется успешной при нажатии кнопки, но если Я пытаюсь войти в систему с помощью shibboleth еще раз, он не будет перенаправлен на страницу входа в Shibboleth! вместо этого он показывает ранее зарегистрированного пользователя (который я вышла из системы). Итак, сеанс кажется постоянным даже после выхода из системы! Но если перед тем, как войти в систему, я закрыл браузер, пользователь перенаправляется обычно на страницу входа в систему Shibboleth. Так что это похоже на состояние сеанса или проблему с файлами cookie! Я использовал следующий код, чтобы решить:Shibboleth Single Sign Out

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"); 

Но это не работает! Может ли кто-нибудь помочь?

ответ

1

URL-адрес Shibboleth.sso/Выход из системы у поставщика услуг не имеет контроля над сессией IdP и не может быть. Он может отправлять запросы на выход SAML или выдавать собственные переадресации.

Наилучшая практика: обработчик выхода должен обрабатываться поставщиком удостоверений.

Закрытие браузера - это только вариант после выхода из системы. Выход из системы не работает в масштабе, и он никогда не будет, если только поставщики браузеров не будут сотрудничать и просто сделают это сами. Таким образом, вы, , можете предположить, что закрытие браузера является единственным вариантом и что все еще требует очистки файлов cookie в последних браузерах Chrome или Firefox.