我正在尋找關於在ASP.Net MVC(或只是一般的cookie處理)Cookie的一些指導。我一直在存儲有關通過cookie中的表單登錄進行身份驗證的用戶的身份驗證信息。這很好,但我現在需要在cookie中存儲更多信息。這些附加信息並非真正與「身份驗證相關」,因此我很猶豫是否將其存儲在身份驗證憑單中。有沒有更好的做法來存儲額外的信息。是否可以設置多個Cookie(如果是的話,這是一種好的/不好的做法)?我應該考慮的其他事情呢?ASP.Net MVC Cookies最佳實踐
下面是當前的代碼我使用設置驗證票和餅乾包裝它:
private HttpCookie GetAuthCookie(AuthToken authToken)
{
var authTokenXml = serializationService.Serialize(authToken);
var authCookieString = FormsAuthentication.Encrypt(
new FormsAuthenticationTicket(
0,
Keys.AuthToken,
DateTime.Now,
DateTime.Now.AddMinutes(AppSettings.SessionTimeoutMinutes),
true,
authTokenXml));
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, authCookieString)
{
Expires = DateTime.Now.AddDays(AppSettings.AuthCookieExpireDays)
};
return cookie;
}
是的,我一直在考慮使用SQL Server會話狀態作爲cookie方法的替代方案。我需要存儲的額外數據很少(可能是20個字符),所以它不應該在網絡或Cookie大小方面增加太多開銷。我有點希望避免使用數據庫來存儲這些額外的信息,除非它確實是更好的做法,這就是爲什麼我在這裏問這個問題的原因。感謝您的反饋意見。 – Paul 2010-07-27 21:00:04
如果只有20個字符,它可能不會對cookie造成任何傷害。如果它是這麼小,使用proc會話也可能是一個很好的選擇。也許嘗試兩種方式,看看哪個更好? – 2010-07-27 21:16:14