使用该站点的任何人都可以访问ASP.NET MVC网站中的全局值吗?或者它是每个会话的实例?

Ben*_*enM 5 asp.net asp.net-mvc global-variables asp.net-mvc-4

我向MVC4网站添加了一些新功能。我刚刚添加了一个全局静态类和一个全局变量来保存一个值,该值在用户访问网站期间的某个时刻确定,并将在以后用作条件。

然后我想到,我不确定在这种情况下静态值的全局性。

我是否必须将全局值指定为会话变量?

还是无论如何,站点的每个用户都可以在自己的会话中访问它,而我不必担心一个用户将其设置为一个值,而另一个用户可以访问此设置值。

Dav*_*ich 5

您的基本问题: 所有用户之间是否共享静态全局变量?

因为每个MVC站点都是一个应用程序,所以所有静态信息都在应用程序的用户池中共享。

更深入的问题: 如何存储用户整个逗留期间的用户数据?

您对静态的问题将使您从某些人中获得嘲笑并从其他人中获得赞赏。嘲笑是因为您可能会抬起头来,欣赏是因为您在存储用户数据以方便检索方面存在的基本问题是我们大多数人面临的重要问题。

  • 您已经使用了会话。会议很尴尬。他们到期了。使用负载平衡时,它们尤其不可靠。为了处理过期的会话,我使用了动作过滤器;动作过滤器会检查空的会话变量OnActionExecuting,如果为,则重新填充会话NULL

  • 我在使用cookie方面取得了更大的成功。Cookies有其自身的问题。某些客户端浏览器不支持它们。但是cookie越来越被接受。反对意见变得越来越少见。