Сохраняются ли данные между доменами? - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть 2 приложения, каждое в разных доменах. Когда пользователь заходит в первое приложение, щелкает ссылку, пользователь отправляется во второе приложение.

Моя проблема заключается в следующем: мне нужно сохранить идентификатор сеанса из первого приложения во второе приложение. Достаточно просто, но вот подвох. Я не могу использовать строку запроса и не могу использовать куки (так как в разных доменах). Я подумал, есть ли способ вставить пользовательские значения в заголовки HTTP или установить некоторые значения формы на промежуточной странице, которая затем будет POST для второго приложения? Таким образом, процесс будет следующим:

Пользователь щелкает ссылку на первой странице, он переводит пользователя на «промежуточную» страницу, эта «промежуточная» страница устанавливает значение sessionId в форме или заголовок http, затем «промежуточная» страница отправляет пользователя второе приложение через POST, где приложение будет иметь sessionId.

Я не могу использовать Server.Transfer, так как приложение не на том же сервере. Помощь

Ответы [ 4 ]

0 голосов
/ 10 ноября 2009

Использовать OpenID . Он предназначен для этой цели (обычная аутентификация для веб-сайтов в нескольких доменах). Протокол разрабатывался годами и, вероятно, сталкивался и решал множество проблем, с которыми вы могли бы столкнуться, если бы вы нашли свое собственное решение.

0 голосов
/ 10 ноября 2009

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

Еще одна вещь, которую вы можете сделать (это не очень хорошее решение, но оно работает), это использовать фреймы и отправлять информацию о дочерних фреймах через javascript (информацию для входа в систему). Мне действительно не нравится этот метод, потому что он представляет так много проблем, которых лучше избегать.

Что я имею в виду:

  • Веб-сервисы: Общайтесь с другим сайтом, чтобы сказать «этот пользователь в данный момент вошел в систему здесь», вы можете сделать это при входе в систему (зависит от того, насколько вы доверяете другому домену), или вы можете сделать это, когда пользователь запрашивает оставить
  • Предоставление пользователю токена аутентификации: вы можете опубликовать его как элемент формы. Или, если у вас есть соглашение с обоими доменами, вы можете отправить его по URL-адресу, который впоследствии можно будет интерпретировать как часть службы перенаправления + подтверждение токена аутентификации. I.E .: domain.com/page/token+pageid-mixture
0 голосов
/ 10 ноября 2009

Вы можете попытаться сделать безопасный запрос SOAP или XML с помощью безопасного токена, ссылающегося на идентификатор сеанса, который вы сохранили для пользователя в общей базе данных. Затем вы можете загрузить сеанс пользователя на основе этого идентификатора сеанса, хранящегося в БД, если совпадение найдено.

0 голосов
/ 10 ноября 2009

Вот как Microfot пытался это сделать Делает ли выдача паспортов Microsoft страной? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...