2010-03-02 77 views
0

我有一個網站向所有用戶顯示信息,但如果您已登錄,則可以訪問更多信息和頁面,然後未登錄的用戶可以訪問。鎖定某些頁面並保留其他頁面

我可以使用一些會話變量並將它們包含在每個頁面中嗎? 這是做什麼最好的方法。

此外,什麼是讓用戶保持登錄狀態的最佳方式,有點「記住我」複選框。保存在硬盤上的cookie?

+0

我不會把它保存在一個會話中,這樣的人可以操縱一個會話,只需要改變這個變量,以獲得更多的權利。您可以在用戶數據庫中創建權限字段,爲每個頁面創建一個權限字段。這樣您就可以處理每個用戶的每個頁面,並且您可以處理大量不同的用戶權限。你也可以考慮使用用戶組,原則是一樣的。仍然缺乏一些安全性,但從我的角度來看,有點更好。 – 2010-03-02 20:10:43

+1

您假定用戶有權訪問會話變量 - 他沒有。什麼是惡意攻擊者就可以做的是改變它指向的會話cookie的,劫持用戶的設置。他仍然無法訪問會話變量,除了網頁設計人員提供的內容。 – dar7yl 2010-03-02 20:17:02

回答

0

回答你的第一個問題。最簡單的路線是在代碼後面放置一些代碼,根據您在會話中保存的內容設置可見標誌的開啓或關閉。

這可能會變得很複雜,所以我會玩一下,找出最適合您業務規則的東西。

回答你的第二個問題。您應該將某些內容保存在一個靜態Cookie中,稍後可以參考。我個人喜歡在他們的cookie中保存一個GUID,我保存了一份本地數據庫的副本。當有人重新訪問該網站時,我尋找這個cookie。如果GUID存在並與我的數據庫中某個人存儲的GUID相匹配,我會自動將其登錄。

0

會員和認證是每個網絡應用與在所有的基本需求之一配備了.NET Framework提供,ASP.NET成員資格是一個這是大多數開發者創建它最有用的。如果你願意,你可以實現自己的授權和認證,但建議使用Authentication and Authorization in ASP.NET

相關問題