У меня два приложения развернуты на разных серверах.
1) Веб-приложение ASP.net MVC 4 с режимом sessionState = "SQLServer" для управления сеансом.
2) Сервисное приложение Servicestack с sessionState mode = "SQLServer" для управления сеансом (да, мне нужен сеанс в сервисном приложении)
оба приложения используют одну и ту же базу данных и таблицы для управления сеансом
Я использую следующее решение для сеанса asp.net в приложении стека служб.
Повторное подключение к сеансу Servicestack в приложении asp.net MVC4 < / а>
Я не использую сеанс servicestack, поэтому следующий способ мне недоступен.
Как использовать стандартный объект сеанса ASP.NET в реализации службы ServiceStack
Пользователь входит в веб-приложение mvc, для данных пользователя приложение mvc, в свою очередь, вызывает методы службы из приложения стека служб.
using (var client = new JsonServiceClient(servicestackUrl))
{
var response = client.Get<HttpWebResponse>(new GetFile
{
UserName = UserName,
EmployerID = EmployerID,
filename = fileName
});
//work on responce
}
теперь мне нужно, чтобы те же переменные сеанса были инициализированы в приложении mvc в приложении Servicestack, развернутом на другом сервере
cookie сеанса устанавливается в веб-приложении mvc, а не в приложении servicestack, но сведения о сеансе хранятся в базе данных sql, доступной для обоих приложений.
Я могу получить текущий идентификатор сеанса и отправить его в службу в качестве параметра, но как получить сведения о сеансе из базы данных с помощью идентификатора сеанса?
Обновление:
Я нашел способ отправить идентификатор сеанса на сервер приложений
var cookie = new Cookie("ASP.NET_SessionId", Session.SessionID);
cookie.Domain = ".app.localhost";
client.CookieContainer.Add(cookie);
Как получить сеанс в приложении serviceStack, используя вышеизложенное, с сервера sql?