Передача сеанса из одного приложения в другое - PullRequest
0 голосов
/ 28 августа 2009

Я хочу передать сессию из одного приложения в другое. Как то, что делают Gmail и Orkut, я хочу это сделать. Может кто-нибудь иметь представление о том, как это сделать?

Возможно ли это без использования БД.

Ответы [ 2 ]

1 голос
/ 28 августа 2009

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

Даже если оба ваших приложения находятся на одном и том же сервере, с готовой функциональностью ASP.NET невозможно совместно использовать сеанс напрямую, поскольку сеанс в памяти в процессе . Тем не менее, запуск любого из двух продуктов, перечисленных выше, на одной физической машине с вашими приложениями и указание обоих приложений на этот сервер состояний приведет вас почти к этому - это будет такой же объем памяти, как если бы они действительно разделяли сеанс, и производительность очень хорошая (межпроцессное взаимодействие очень быстро по сравнению с сетевым вводом / выводом).

Вот более подробное описание механизма общей схемы аутентификации между двумя или более сайтами.

0 голосов
/ 28 августа 2009

Какой язык вы используете? Если вы используете ASP.NET в IIS, что я бы предположил по вашим тегам, вы можете сделать это, используя атрибут machineKey в файле web.config. Это будет выглядеть примерно так:

<system.web>
    <machineKey validationKey="(here)" decryptionKey="(here)" validation="SHA1" />
</system.web>

Затем вы можете использовать атрибут enableCrossAppRedirects = "true" для типа аутентификации, если вы хотите, чтобы ключи аутентификации передавались между приложениями.

Кроме того, если вы хотите сгенерировать машинный ключ, вы можете использовать инструмент Скотта Форсайта в http://www.orcsweb.com/articles/aspnetmachinekey.aspx

Наконец, после публикации первого ответа вы можете внедрить сервер состояний ASP.NET для лучшего контроля состояния приложения. Команда ASP.NET скоро выпустит Velocity, которая занимается распределенным кэшированием. Есть и сторонние инструменты для обоих.

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