2017-07-03 102 views
0

这可能是一个可能的重复,但因为我从这些门户网站中找不到任何答案,所以我再次发布这个问题。有/没有www的域没有保存会话ASP.NET

我有一个网站,当我试图通过在URL中给出两个不同的域名来测试本网站中的会话数据。

我附上屏幕截图,以作简要说明。 enter image description here

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

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

我在网上搜索,发现很少的解决方案,但他们都没有工作。 我将它添加到配置文件后测试,但下面不工作

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

<httpCookies domain="ssfound.com"/> 

我甚至尝试<sessionstate cookieless="true"/>和模式=是InProc但这些都不能工作。

请不要将其标记为重复,因为我尝试了以上solutions in从stackoverflow社区&他们不工作从我。

+0

你不应该使用无Cookie会话。 – mason

+0

是的,在上传文件时,添加无cookie实际上导致了另一个问题。 – ashveli

回答

1

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

非www或www,并始终将用户重定向到您想要的网址之间进行选择,这也有助于你在搜索引擎优化,分析,入站链接的条款等

您可以使用下面的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(); 
    } 
} 
+0

感谢您的解决方案,这是工作。但是,我必须检查这是否影响现有的功能。 – ashveli