未为域 with/without www ASP.NET 保存会话

Session not saved for the domains with/without www ASP.NET

这可能是重复的,但由于我 none 从这些门户网站得到的答案对我有用,所以我再次发布问题。

我有一个网站,当我试图通过在 URL 中提供两个不同的域名来测试该网站内的会话数据时。

我附上截图以作简要说明。

当我登录 URL ssfound.com 时,会话被保存并显示我的登录详细信息。

当我打开 www.ssfound.com 时,会话无法获取 htese 登录详细信息。

我在互联网上搜索并找到了一些解决方案,但其中 none 个有效。 我在将它添加到配置文件后进行了测试,但下面不起作用

<httpCookies domain=".ssfound.com"/>

<httpCookies domain="ssfound.com"/>

我什至试过 <sessionstate cookieless="true"/> 和 mode = InProc 但这些都不起作用。

请不要将其标记为重复,因为我在 Whosebug 社区中尝试了上述 solutions 并且它们对我不起作用。

您的站点 ssfound.com 和 www.ssfound.com 被视为两个不同的站点,类似于 http 和 https。

在非 www 或 www 之间进行选择,并始终将用户重定向到您想要的 url,这在 SEO、分析、入站链接等方面也对您有帮助

您可以使用以下 c# 代码(在全局文件中)将非 www 站点用户转换为 www 站点。

protected void Application_BeginRequest (object sender, EventArgs e)
{
   if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback)
   {
      UriBuilder builder = new UriBuilder (Request.Url);
      builder.Host = "www." + Request.Url.Host;
      Response.StatusCode = 301;
      Response.AddHeader ("Location", builder.ToString ());
      Response.End ();
   }
}