2017-07-03 60 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