2012-08-08 84 views
0

一些答案接近但不是我所遇到的問題。這裏是我正在採取的步驟導致問題:註銷和登錄後的會話變量

  1. 登錄我們的網站。 - 會話變量已設置。
  2. 重定向到默認頁面會很好。 - 會話變量正確,因爲數據正確顯示。
  3. 登出的網站。 - 重定向到正確的登錄頁面。
  4. 再次登錄。 - 會話變量再次設置。
  5. 重定向到默認頁面發生。 - 會話變量爲空。數據顯示不正確。

下面是我在登錄過程中將變量放入Session的方法。

Session.Add("company", companyPrikey); 

這裏是我的默認頁面

if (Session["company"] != null) 

即使我看到Session.Add第二次登錄時運行引用會話,如果發現Session["company"]默認頁是null當它運行Page_Load()

我看過Session.SessionID,他們在每次登錄時都是一樣的。

任何讓用戶遠離站點(導航到不同的URL,關閉標籤,關閉IE)的問題可以解決問題,並且他們可以再次正確登錄。

- 編輯 -

重定向只是在URL

Login.aspx?ReturnUrl=~/History.aspx 

登錄完成,然後又回到了歷史頁面。

+0

也許你應該張貼代碼周圍的重定向,來幫助我們尋找您的問題。 – BlackVegetable 2012-08-08 15:51:13

+0

你如何登錄和註銷?包含條件的代碼是什麼? – 2012-08-08 16:20:47

+0

這只是默認包含一個新項目的默認login.aspx。它已更新爲使用活動目錄。我添加到按鈕單擊事件來提取所需的信息並將其存儲在Session中。 – user1552208 2012-08-08 16:36:03

回答

0

看起來好像會話在註銷時可能沒有被正確刪除。因此,空檢查失敗,並且變量在後續登錄時沒有被賦予新的值。

如果您尚未登出,請嘗試Session.Abandon()。這將在頁面完成處理時關閉會話,即在放棄代碼之後不直接重定向到登錄頁面。

更多信息:http://msdn.microsoft.com/en-us/library/ms524310%28VS.90%29.aspx

+0

它越來越近了。我嘗試將Session.Abandon()放入LoggingOut()和LoggedOut()中。當現在執行登錄代碼時,會話變量未設置,但它仍不包含新值。如果有幫助,我使用asp:LoginView對象。其中一個屬性是LogoutAction。如果我將它設置爲無,因此它不像您所述的那樣重定向,我如何返回到登錄頁面?謝謝 – user1552208 2012-08-09 16:42:38

+0

好吧,最後一部分是將LogoutAction設置爲刷新。這導致頁面剛剛刷新,然後導致重定向而不是立即重定向。感謝您的幫助。 – user1552208 2012-08-09 16:51:29

+0

@ user1552208 - 沒問題。很高興你已經把它全部排序了。 – 2012-08-09 17:35:12