2009-11-25 5 views
2

есть ли какое-либо решение, как я могу закрыть браузер полностью? Мне нужно это, потому что я использую Single Sign On с другой страницы, и на этой странице написано, что только закрытие браузера выйдет из системы.закрыть браузер полностью

+0

Почему бы не попросить пользователя выйти из системы, что-то в строках пользователя: X вошел в систему (если у вас нет X нажмите здесь) – Alon

ответ

0

Нет, вы не можете заставить браузер пользователя закрываться без их разрешения.

Редактировать: Несмотря на то, что для некоторых браузеров существуют обходные пути, это плохая практика и считается навязчивой.

+0

ОК, я понимаю. Так что я могу заставить упомянутый выход из системы – 2009-11-25 08:08:06

+0

Как уже упоминалось в других ответах, удаление любых потенциальных файлов cookie сеанса, вероятно, является лучшим способом. Помимо этого, вы можете предупредить пользователей о рисках и попросить их закрыть браузер, когда они выходят из системы. –

5

Вы не можете закрыть браузер пользователей, но если вы можете определить файл cookie, содержащий сеанс, вы можете его очистить. Как вы это сделаете, зависит от языка, который вы используете.

В JavaScript, вы бы быть работает на том же домене, что и печенье вы хотите, чтобы очистить

var expired = new Date(); 
expired.setTime(mydate.getTime() - 86400); 
document.cookie = "my_session_cookie_name=; expires=" + expired.toGMTString(); 

На стороне сервера, вы можете выводить заголовки, чтобы установить или очистить куки. В зависимости от настроек браузера пользователей вы можете установить файлы cookie на сторонних доменах. Вот пример в PHP

setcookie ('my_session_cookie_name', '', time() - 86400); 

//clear cookie for example.com 
setcookie('my_session_cookie_name', '', time()-86400, '/', '.example.com'); 
+0

спасибо, я попробую это решение – 2009-11-25 08:17:16

+0

Вы не можете очистить файлы cookie в домене третьих лиц, как указано здесь. –

+0

Если вы можете установить их, вы можете их очистить, нет никакой разницы. Это зависит от того, настроен ли браузер для их принятия. –

2

Нет, вы не можете.

что страница написано, что только закрыв браузер будет выход пользователя

Если вы можете запустить JavaScript в правом домен (Single Sign On домена сервера), я уверен, что вы можете войдите в систему, просто удалив файл cookie сеанса.

0

По крайней мере, не в Firefox, иначе это будет большая проблема юзабилити.

удалять файлы cookie при закрытии вкладки.

0

можно закрыть браузер, открытый через javascript, но так как пользователь открывает первый браузер, закрыть все браузеры не удастся.

Ваш SSO должен иметь какую-то функцию выхода из системы, было бы лучше. Эта функция очистит файлы cookie пользователя или очистит сеанс на стороне сервера.

+0

, к сожалению, это SSO не предоставляет функцию выхода из системы. Это наиболее раздражает – 2009-11-25 08:12:02

+0

@Peter: вы не можете реализовать его самостоятельно? – RageZ

+0

SSO реализована другой компанией, и у меня нет доступа к ней. – 2009-11-25 08:24:19

-1

Его очень просто,

просто добавить код JavaScript

<td width="10%"><div align="center"><a href="javascript:window.close() "><font color="#ffffff">Close</font></a></div></td> 
0

Если каждый сайт SSO получают свое собственное печенье, возможно, потребуется зарегистрировать пользователь из каждого сайта SSO индивидуален. Надеемся, что у каждого сайта есть свой собственный URL-адрес «log me out», и вы можете открыть страницу с несколькими iframe s на каждый сайт единого входа.

0

Вы можете установить их в разных доменах, но в зависимости от настроек безопасности в браузере, они могут быть заблокированы, пользователю может быть предложено подтвердить или они могут быть молча приняты. Вот как настроить Firefox на блок сторонних куки-файлов: support.mozilla.ru/en-US/kb/...

И как я могу установить их через домены?