未为包含/不包含www.ASP.NET的域保存会话

未为包含/不包含www.ASP.NET的域保存会话,asp.net,session,webforms,dns,hosting,Asp.net,Session,Webforms,Dns,Hosting,这可能是一个重复,但由于我没有一个答案在这些门户网站上对我有效,我再次发布这个问题 我有一个网站,当我试图测试这个网站内的会话数据时,在URL中给出两个不同的域名 我附上截图作简要说明。 当我登录到URL ssfound.com时,将保存会话并显示我的登录详细信息 当我打开www.ssfound.com时,会话无法获取htese登录详细信息 我在互联网上搜索,发现了一些解决方案,但没有一个有效。 我在将其添加到配置文件后进行了测试,但下面的测试不起作用 <httpCookies doma

这可能是一个重复,但由于我没有一个答案在这些门户网站上对我有效,我再次发布这个问题

我有一个网站,当我试图测试这个网站内的会话数据时,在URL中给出两个不同的域名

我附上截图作简要说明。

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

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

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

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

<httpCookies domain="ssfound.com"/>
我甚至尝试过在proc中使用mode=InProc,但这两种方法都不起作用


请不要将其标记为重复,因为我在stackoverflow社区中尝试了上述内容&它们对我无效。

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

在非www或www之间进行选择,并始终将用户重定向到您所需的url,这在搜索引擎优化、分析、入站链接等方面也有帮助

您可以在全局文件中使用下面的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 ();
   }
}

您永远不应该使用cookieless会话。是的,添加cookieless实际上会在上载文件时导致另一个问题。感谢您提供的解决方案,这是可行的。但是,我必须检查这是否影响了现有的功能。