【问题标题】:asp.net mvc 3 global variables without cookiesasp.net mvc 3 没有 cookie 的全局变量
【发布时间】:2012-01-17 15:26:34
【问题描述】:

我有一个 asp.net mvc 3 移动应用程序,默认情况下,大多数智能手机都禁用了 cookie。我需要使用一些全局变量,并且在桌面版本的站点上我使用 cookie 来做到这一点。是否有无 cookie 的方式在会话中存储数据?我听说过会话变量,但不是也使用 cookie 吗?

【问题讨论】:

    标签: asp.net-mvc-3 cookies


    【解决方案1】:

    无 Cookie 会话应该可以为您解决问题。

    <sessionState cookieless="true" />
    

    有关此概念的更多信息:http://msdn.microsoft.com/en-us/library/aa479314.aspx

    【讨论】:

      【解决方案2】:

      如果您的对象不是用户特定的,您可以使用caching。如果它们是特定于用户的,那么您将需要使用 cookie 或 include the session id in the request URI。这样做确实会将您的应用程序打开到session hijacking,这可能会带来安全风险,具体取决于您的应用程序的工作方式。

      【讨论】:

        【解决方案3】:

        您可以在 URL 中使用参数来定义会话 ID,例如 http://www.mysite.com/m/{SessionID}/{controller}/{action}/{id} 其中“m”定义您网站的移动版本和您的唯一会话 ID 存储在 URL 中。您的所有 ActionLink 都会自动包含它们。

        您需要将有关会话的信息存储在服务器上的某些存储中(数据库、文件系统、应用程序缓存)。

        【讨论】:

          猜你喜欢
          • 2011-07-04
          • 1970-01-01
          • 2012-04-29
          • 2010-10-15
          • 1970-01-01
          • 1970-01-01
          • 2015-05-24
          • 1970-01-01
          • 2013-10-23
          相关资源
          最近更新 更多