有/没有www的域没有保存会话ASP.NET
问题描述:
这可能是一个可能的重复,但因为我从这些门户网站中找不到任何答案,所以我再次发布这个问题。有/没有www的域没有保存会话ASP.NET
我有一个网站,当我试图通过在URL中给出两个不同的域名来测试本网站中的会话数据。
当我登录到URL ssfound.com时,会话被保存并显示我的登录信息。
当我打开www.ssfound.com时,会话无法获取htese登录详细信息。
我在网上搜索,发现很少的解决方案,但他们都没有工作。 我将它添加到配置文件后测试,但下面不工作
<httpCookies domain=".ssfound.com"/>
<httpCookies domain="ssfound.com"/>
我甚至尝试<sessionstate cookieless="true"/>
和模式=是InProc但这些都不能工作。
请不要将其标记为重复,因为我尝试了以上solutions in从stackoverflow社区&他们不工作从我。
答
您的网站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
你不应该使用无Cookie会话。 – mason
是的,在上传文件时,添加无cookie实际上导致了另一个问题。 – ashveli