基本上我有一個對象在多個頁面中被持久化,所以我使用Session來保存和檢索對象。我正在使用會話密鑰的GUID。我使用靜態構造函數來創建GUID。使用GUID作爲會話密鑰?
這裏是對象的示例:
class Customer
{
private static readonly string _sessionKey;
public static string SessionKey
{
get { return _sessionKey; }
}
static Customer()
{
_sessionKey = Guid.NewGuid().ToString();
}
}
然後我用它在我的代碼是這樣的:
Session.Add(Customer.SessionKey, new Customer());
...
Customer C = Session[Customer.SessionKey] as Customer;
我個人比較喜歡這個方法而不是用於會話密鑰的文字const string
或string
。只是想知道是否有任何缺點,或者你有什麼其他方法?
看起來如果密鑰不是靜態的,即在會話中存在多個「客戶」,這樣做會更有意義。另外,這個問題可能更適合http://codereview.statckexchange.com。 – FishBasketGordo 2012-08-13 20:52:42
如果您移動到負載平衡環境,則將新GUID用作關鍵字確實會下降 – 2012-08-13 20:56:28
如果要將會話密鑰存儲爲靜態變量,爲什麼不將「客戶」對象存儲爲靜態變量? – Servy 2012-08-13 20:57:14