2012-04-13 44 views
4

我升級了一個.net 2.0應用程序到net 4.0,現在如果我嘗試用IE登錄會話立即過期。更新到ASP.NET 4後會話在IE中「立即過期」? (FF工作正常)

有沒有人有什麼想法在哪裏尋找這個問題?

Firefox可以正常登錄。

謝謝。

編輯,更多信息:檢查IE的cookies和firefox的cookies,看起來cookie並不是在I.E中創建的,而是在Firefox中創建的。 關於爲什麼這可能是任何想法?仍然深入挖掘,但有一個艱難的時間...

最後修改;修復:原來這與asp 4.0無關。我升級了應用程序,並將其設置在一個子域中進行測試,以確保一切正常,並且子域中有一個_。經過大量研究,IE不會從帶有_的域中取得cookie。這是通過設計意圖完成的,顯然,由於技術上的DNS規則禁止在域中使用下劃線。更改爲 - 並且工作。

+0

確保你沒有使用折舊會話標籤,也可能要設置http://php.net/manual/en/function.session-name.php – squarephoenix 2012-04-13 20:54:27

+2

@ techjunkie.css quetion指的是ASP.Net ,而不是PHP? – 2012-04-13 20:55:24

+2

您是否嘗試過使用Fiddler進行調試來驗證Cookie等? – 2012-04-13 20:58:13

回答

2

最後的編輯;修復:原來這與asp 4.0無關。我升級了應用程序,並將其設置在一個子域中進行測試,以確保一切正常,並且子域中有一個_。經過大量研究,IE不會從帶有_的域中取得cookie。這是通過設計意圖完成的,顯然,由於技術上的DNS規則禁止在域中使用下劃線。更改爲 - 並且工作。

0

如果您的應用程序在Firefox上正常工作,那麼可能是因爲IE 8。IE 8具有不同的Cookie處理設置。這是該問題的補救措施: -

1)工具 - > Internet選項 - >隱私 - >高級 - >檢查覆蓋自動cookie處理。 2)選擇在接受第一方Cookie,並選擇接受第三方的cookies 3)檢查總是允許會話cookie

如果你不能改變客戶端瀏覽器設置,然後嘗試Cookie會話。要做到這一點,只需定義: -

<sessionState cookieless="true" /> 

在您的web配置文件中。

Cookie會話的詳細信息: -

http://msdn.microsoft.com/en-us/library/aa479314.aspx

相關問題