使用GUID作为会话密钥?

时间:2012-08-13 20:49:33

标签: c# asp.net session guid

基本上我有一个持久化多个页面的对象,因此我使用Session来保存和检索对象。我正在使用GUID作为Session密钥。我使用静态构造函数来创建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 stringstring字面值。只是想知道这是否有任何缺点或你使用了什么其他方法?

2 个答案:

答案 0 :(得分:4)

为什么这样?你应该只定义常量并完成它。如果您使用Session迭代或使用调试器,则它们不具有描述性。

答案 1 :(得分:0)

如果您在会话中有Customer个对象 - 以常量名称保存。否则,请考虑以常量名称保存Customer个对象的集合。

注意:如果您计划使用其他状态提供程序(SQL /状态服务)而不是默认的内存提供程序,请确保您的Customer对象是serializale并且在请求之间有意义。