在我们的应用程序中,我们有一个“BasePage”,它声明了应用程序中每个页面或多或少要使用的许多属性。
在这些属性中,他们写入ViewState。这些通常都是int或小字符串值,没什么大不了的。例如,典型的用途是调用Web服务并保存id以在页面中使用。
我使用了viewstate,因为我担心IIS回收时会丢失会话变量,例如。另外,我认为,非常小的值不会大大增加页面大小。
我是否对会话过于偏执,这是一个更好的选择。
我们的环境是一个2服务器群集,每个服务器都有SSL终止,由负载均衡器维护粘性会话 - 所以使用In Proc不是问题,我只是非常警惕它。
答案 0 :(得分:3)
永远不要相信您的用户发送数据。
即使您收到的所有数据都不敏感,如果您将其发送到用户浏览器,则应在使用前再次检查。也许大多数用户都是合法的,但只有一个用户可能会破坏您的应用程序。
您可以选择存储数据吗?
阅读您的场景,您可能需要处理进程外会话存储。
答案 1 :(得分:2)
我认为最好尽可能避免使用会话状态,尤其是在服务器群集上,即使您使用粘性会话也是如此。当IIS回收时,会话可能会过期或消失(如您所说)。
我会将值保存在ViewState或cookie中。
答案 2 :(得分:1)
如果它不是敏感数据,我也希望将其存储在HTML而不是会话中。