我有两个应用程序部署在不同的服务器上。
1) ASP.net MVC 4 Web 应用程序使用 sessionState 模式="SQLServer" 进行会话管理
2) 使用 sessionState mode="SQLServer" 进行会话管理的 Servicestack 服务应用程序(是的,我需要服务应用程序中的会话)
两个应用程序共享相同的数据库和表进行会话管理
我正在使用以下解决方案在服务堆栈应用程序中进行 asp.net 会话。
在 asp.net MVC4 应用程序中重新连接到 Servicestack 会话
我没有使用 servicestack 会话,因此我无法使用以下方式。
如何在 ServiceStack 服务实现中使用标准 ASP.NET 会话对象
用户登录到 mvc web 应用程序,对于用户数据 mvc 应用程序依次调用服务堆栈应用程序中的服务方法。
using (var client = new JsonServiceClient(servicestackUrl))
{
var response = client.Get<HttpWebResponse>(new GetFile
{
UserName = UserName,
EmployerID = EmployerID,
filename = fileName
});
//work on responce
}
现在我需要在部署在另一台服务器上的 Servicestack 应用程序中的 mvc 应用程序中初始化相同的会话变量
session cookie 是在 mvc web 应用程序中设置的,而不是在 servicestack 应用程序上,但会话详细信息存储在两个应用程序都可以访问的 sql 数据库中。
我可以获取当前会话 ID 并将其作为参数发送到服务,但是如何使用会话 ID 从数据库中获取会话详细信息?
更新 :
我找到了一种将会话 ID 发送到应用服务器的方法
var cookie = new Cookie("ASP.NET_SessionId", Session.SessionID);
cookie.Domain = ".app.localhost";
client.CookieContainer.Add(cookie);
如何使用上面的 sql server 在 serviceStack 应用程序中获取会话?