我正在开发一个MVC 3应用程序,该应用程序将托管在具有多工作进程设置的Web场中。有大约十几个变量存储在Session中,但由于IIS设置而丢失。
通过迷路我的意思是当登录过程成功时我通过日志记录看到我已经设置了Session变量但是在重定向操作之后并且在着陆Controller Action上,Session变量通常是空的。我不确定这是否相关,但这是在HTTPS中。
我们正在研究将存储在Session out中的用户特定设置移动到其他机制的可能性,但是有一个变量我将无法使用。鉴于上述部署环境,我有以下问题。
System.Runtime.Caching
在上述IIS配置中运行时遇到同样的问题。这是真的吗?答案 0 :(得分:7)
Cookie是我唯一(最好吗?)存储会话变量的替代方案 用户特定的设置?
不 - 他们是最糟糕的方法。想到三个原因:
如果是这样,有一种安全的机制来编写cookie,所以他们不能 被操纵,仍然可以在多服务器环境中阅读?
见上面的答案。
据我所知,System.Runtime.Caching也有同样的问题 在上面的IIS配置中运行时出现问题。这是真的吗?
真。您应该使用任何超出proc的州提供商。您可以使用Sql Server存储会话数据 - 提供您的对象可序列化,显然 - 或State server mode mode="stateserver"
Read here了解更多详情