Передача данных сеанса между приложениями ASP.NET - PullRequest
7 голосов
/ 05 марта 2009

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

Спасибо.

Редактировать: Чтобы быть более понятным, основная информация в сеансе, которую я хотел бы передать, это аутентифицированный идентификатор пользователя, но, возможно, также некоторые другие переменные сеанса.

Ответы [ 5 ]

3 голосов
1 голос
/ 05 марта 2009

Для сеанса отметьте это: http://www.codeproject.com/KB/aspnet/Sharing_session_state.aspx

В дополнение к этому файл cookie используется совместно: http://mgrzyb.blogspot.com/2007/12/aspnet-and-subdomains.html

1 голос
/ 05 марта 2009
0 голосов
/ 10 марта 2009

Разделение входа между приложениями (см. Выше) - это совсем не та игра в мяч, которая позволяет разделять сессии ASP.NET между приложениями.

Почему вы хотите поделиться сессиями между приложениями?

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

Если ваши приложения очень тесно связаны, например, пользователь использует оба одновременно или почти в одно и то же время, вы можете объединить их в одно приложение ASP.NET.

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

Надеюсь, это поможет.

0 голосов
/ 05 марта 2009

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

Предполагая последнее, вы можете попробовать что-то вроде этого:

  • сначала убедитесь, что все приложения работают в одном домене. Если нет, все ставки сняты. Я не знаю, существует ли еще простой способ настройки свойства домена cookie сеанса, поэтому вам, возможно, придется сделать это самостоятельно, задав для домена свойство cookie домена:

    Response.Cookies ["ASP.NET_SessionId"]. Domain = ".mydomain.com";

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

...