2009-06-24 6 views
2

Чтобы реализовать единый вход, я хотел бы, чтобы пользователь выходил из приложения B дополнительно, когда пользователь нажимает кнопку выхода из приложения A. Возможно ли реализовать это с помощью какой-либо формы запроса POST к применению B? т.е., когда пользователь нажимает на выходе из системы:Отправка запроса POST HTTP

  1. Генерировать существующий запрос POST, чтобы завершить сеанс приложения
  2. Генерировать дополнительный запрос POST для выхода из приложения B, а также.
+0

ВАМ необходимо быть более понятным. То есть на каком языке вы программируете. – Colin

ответ

0

Да, как вы это делаете, это зависит от языка программирования, который вы используете.

Например под ASP.Net вы бы использовать System.Net.HttpWebRequest при обработке события Выхода из приложения А, чтобы сделать запрос на выход из системы в приложении B

Если вы не можете, какой язык вы работая в Я могу привести пример

+0

Приложение J2EE. Язык Java – Subramanian

+0

Как правило, язык, на котором я не работаю или хорошо знаю, кто-то другой должен будет привести пример – RobV

0

В зависимости от реализации вашей системы аутентификации, возможно, вам нужно/нужно отправить POST с использованием JavaScript вместо серверной.

0

Без конкретной информации трудно дать конкретный ответ, но, поскольку вы ссылаетесь на POST, я предполагаю, что задействован браузер.

POST (без использования Javascript или аналогичных) возникает при отправке формы. Поскольку форма может иметь только одно действие, она может ориентироваться только на одну серверную страницу.

Одним из решений является простое использование приложения Перенос учетных данных для входа в приложение B после получения одного действия, что позволяет получить больше возможностей для проверки возвратов.

Если, однако, вы установите на POST'ing на разные страницы, увидеть этот учебник для одного IFrame связанного хака - http://www.codeproject.com/KB/scripting/multiact.aspx

+0

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

+0

Нет, вы делаете это исключительно на бэкэнд и отправляете свою оригинальную страницу выхода пользователю. Приложение А фактически будет действовать как пользователь во взаимодействии с Приложением B (и не возвращать ничего, предполагая успех - или «выключение ошибок», если приложение не выполнено). – Jon

+0

Я пробовал URLConnection с небольшим успехом. Ajax исключается, поскольку он будет междоменным. – Subramanian

1

Чистейшего способом сделать это, чтобы проверить, если ваш поставщик SSO имеет возможность однократного выключения.

Кодирование этого и его развертывание сделало бы ваше общее ИТ-решение немного хрупким.

Другое предложения принять это с вашим (Enterprise) архитектором, как SSO, как правило, инициатива предприятий и направить ее (весьма веские) аргументы в этом посте: http://lists.danga.com/pipermail/yadis/2005-July/001085.html

0

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

0

Как насчет того, чтобы сделать аутентификацию на основе файлов cookie? Один и тот же файл cookie аутентифицирует пользователя для различных приложений (в вашем случае 2 разных приложения.) Как только пользователь подписывается из одного приложения (приложение A), аннулирует cookie (по дате истечения срока действия), чтобы всякий раз, когда пользователь отправляет запрос POST для отдыха приложения (приложение B) запрос не обрабатывается. Сервлет, который отслеживает каждый запрос POST для проверки cookie, требуется для каждого приложения.

+0

Понял, что эта проблема решена - введен токен (время создания сеанса) и кэширован этот токен в приложении. Если запрос поступает через кнопку «Назад», была введена проверка, чтобы убедиться, что этот токен был кэширован/архивирован в приложении. Если маркер архивирован, пользователь будет перенаправлен на страницу таймаута сеанса. – Subramanian

Смежные вопросы