2008-10-03 11 views
1

我有一個用戶登錄的內部網站。這些數據被保存爲一個cookie。從那裏用戶繼續他們的快樂方式。每隔一段時間,應用程序將查詢認證記錄以確定用戶擁有什麼權限。重複的cookie查詢或存儲在視圖狀態?哪一種更好的做法?

我的問題是:這是比較有效的只是查詢該cookie對用戶數據的需要或保存在視圖狀態中的用戶信息的時候嗎?

[編輯]如下所述,Session也是一個選項。

回答

1

ViewState是具體到他們正在查看的頁面,所以它走了,一旦他們沿着thier快樂的方式去。不是堅持數據的好方法。

最好的辦法是使用窗體身份驗證,其內置於ASP.NET,你也可以推任何特定用戶信息到窗體身份驗證票的價值。你可以得到4000個字節(加密後),它應該可以容納你需要的任何東西。它還會處理允許和拒絕用戶訪問網站上的頁面,並且可以將其設置爲在需要時過期。

會話存儲是沒有沒有,因爲它做的非常不好(在服務器上吞噬了資源),它可以是惱人的多瀏覽器連接到同一臺服務器的用戶。它有時是不可避免的,但如果可以的話,你應該盡力避免它。

1

就個人而言,我更喜歡使用session存儲的東西,雖然這裏的其他開發商似乎認爲這是一個禁忌。

有一點需要注意:您可能需要存儲用戶的IP會話,並將其與用戶當前的IP,以避免會話劫持。可能有人在這裏對如何防止會話劫持有更好的想法。

+1

不要在代碼中留下任何xss漏洞。 – Shawn 2009-01-21 18:26:56

0

您可以使用會話數據 - 你知道,一旦你已經存儲在那裏的,用戶不能與它周圍通過改變查詢字符串傻瓜的方式。

0

我會使用cookie方法。會話沒問題,但在重新編譯時由asp.net處置,而且如果要在會話之後繼續保留會話,則必須使用非會話cookie。此外,如果你曾經使用過一個狀態服務器,它本質上是做同樣的事情(存儲數據庫中的會話)。會話就像一個快速和骯髒的修復,真正的男人使用Cookie。

相關問題