【问题标题】:How to share session state across subdomains如何跨子域共享会话状态
【发布时间】:2015-02-03 10:12:33
【问题描述】:

我有两个域名为 www.example.com 和 www.test.example.com 的网站都包含相同的学生详细信息。我想在两个域之间共享会话。可以吗?

【问题讨论】:

  • 我已经完成了给定的链接信息。现在它在我的本地主机上工作但在我的域中没有工作。它在其他域的会话状态中显示空值。
  • 本地工作正常,但服务器不工作
  • 您需要为此使用 sql 状态服务器会话。

标签: sql asp.net


【解决方案1】:

使用以下方法:

void MasterPage_Unload(object sender, EventArgs e)
{
   ///ASP.NET uses one cookie per subdomain/domain,
   ///we need one cookie for _all_ subdomains.
   if (Context.Response.Cookies["ASP.NET_SessionId"] == null)
      return;

   var sessionCookie = new HttpCookie("ASP.NET_SessionId", Context.Session.SessionID);
   sessionCookie.Domain = ".yourdomain.com" ; 
   Context.Response.SetCookie(sessionCookie);
 }

【讨论】:

  • 谢谢,但是如何在另一个子域中获取这个 sessioncookie。
  • 我假设您的子域映射到同一个应用程序。如果没有,那么您可以尝试以下方法之一,1. 基于 SQL Server 的会话存储 2. HttpModule 在 IIS 上拦截和操作请求
  • 是的,仍在使用基于 Sql 服务器的会话存储。如何将会话状态传递到其他域?在我的主域中,我使用的是动态链接,所以我不能使用 Request.query 字符串在其他域中。
  • 我有两个网站。我已经在给定的子域中上传了两个网站 1)test.example.com 2)run.example.com 在本地它工作正常,但在服务器上它不工作。我想在此应用程序之间共享会话。使用 sql server 作为会话模式。我根据给定的网站完成了这些活动。 codeproject.com/Tips/576989/…
猜你喜欢
  • 1970-01-01
  • 2012-10-05
  • 2011-08-26
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多