【问题标题】:How to ensure that session state is NOT shared between applications hosted on the same server如何确保会话状态不在同一服务器上托管的应用程序之间共享
【发布时间】:2011-07-16 10:38:17
【问题描述】:

我的问题是
Sharing session state between 2 ASP.NET applications using SQL Server相反How to maintain the same session id across multiple web applications in ASP.NET.

我们的应用程序使用状态服务器来存储会话信息,并且我们经常希望在同一个 Web 服务器上托管同一应用程序的多个版本。

目前,因为ASP.NET_SessionId cookie 没有针对任何路径存储,如果我到达http://donkey.com/app1 并开始一个新会话,然后在同一个浏览器会话中转到http://donkey.com/app2,我继承了来自 app1 的会话 ID(以及会话状态)。

有没有办法诱使 ASP.Net 在存储会话 ID cookie 时设置路径,从而破坏这种不必要的会话状态共享?

【问题讨论】:

  • 您是否将应用程序分离到不同的应用程序池中?

标签: asp.net session-state


【解决方案1】:

您必须为 web.config 中的每个 Web 应用程序使用不同的 cookieName

默认为“ASP.NET_SessionId”。

您也可以通过编程方式设置它。检查this post

【讨论】:

    【解决方案2】:

    您可以使用子域来实现这一点。比如http://app1.donkey.comhttp://app2.donkey.com。默认情况下 - cookie 不会跨域共享。

    另一种方法是通过编程设置 cookie 名称,该名称可能基于某些配置值,该值确定您使用的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 2015-09-23
      • 2012-08-30
      • 2012-12-20
      • 2020-06-11
      相关资源
      最近更新 更多