2010-01-11 115 views
1

我目前在ASP.MVC項目上使用我自己的成員資格實現。我有一個賬戶,一個賬戶可以有超過一個會員資格。緩存帳戶信息

我不確定隨帳戶信息被緩存的最佳方法是什麼。我目前正在從控制器的用戶屬性中加載幾乎每個請求的帳戶信息。

我應該緩存帳戶信息嗎?如果哪裏是最好的地方,cookies或Session?

回答

1

我對會議的建議很強烈。它們不能很好地擴展並且不適合Web/HTTP類型的體系結構。如果您喜歡REST,請參閱this REST article中的'關鍵REST原則'。

我建議把用戶信息放在cookies中(不要過度使用,只是真正需要的東西)。

並將敏感信息保存在ASP.NET Forms身份驗證Cookie中。請參閱Forms Authentication article「步驟4:在票證中存儲其他用戶數據」。

從數據庫中獲取其餘數據。避免premature optimization

+0

優秀的參考和建議麥克斯韋,你能解釋爲什麼會議不能很好地擴展嗎? – adriaanp 2010-01-12 17:47:34

0

這些問題經常出現,答案是「取決於」。

如果您只存儲少量的字符串數據,則Cookie正常。有限制(每個cookie 4k,HTTP頭限制),並且每次請求和響應都會通過網絡發送。您可能不得不從存儲在cookie中的數據「重新充注」您的帳戶/會員信息。用戶可以選擇不接受來自您網站的cookies。

會話是強類型的(沒有重新通貨膨脹),不會隨每個請求/響應一起傳輸。如果您認爲您的網絡應用程序需要它,有幾個擴展會話存儲的選項。大多數中小型網站使用會話沒有問題。