chenpeng

C#(亲身使用)获取Session的值
首先:我们来看看使用session对象带给我们的一些好处,也就是优点:以下是session对象带给我们的一些方便之...
扫描右侧二维码阅读全文
20
2019/03

C#(亲身使用)获取Session的值

首先:我们来看看使用session对象带给我们的一些好处,也就是优点:

以下是session对象带给我们的一些方便之处.
1.session对象可以在页面间传递一个变量,它传递数据比request的querystring方法要方便.这个大家应该使用过吧.
2.session对象可以让网页记住用户名,实现网页的用户化, 从而赢得用户的喜好.
3.在asp-vbscript中,你可以直接使用它,不需要去定义,使用完毕后,也不用去管它.
其次: session对象在使用时也存在一些缺点:
1.大家都知道cookies也可以保存数据,它的功能基本和session没有什么多大的区别,但是一但遇到用户的浏览器设置为不支持cookies的时候,那么我们的session也就没有办法使用了啊.
2.前面我们说道session可以实现用户化,那么也就是说这个session是程序执行自动生成的,在这里我们只是存放了单个的用户名,内容很少,但是如果存放的是大量的数据或者是一个recordset对象返回的记录集,而且很多网站都没有设置session的有效期,都是20分钟,那么这样我们的机器的负担就跟着一起增加.3.由于可以直接使用它,不需要去定义,所以一但使用过多,每个session变量的含义是什么?这些都变得不很清晰。
最后总结:也就是说使用Session变量既有优点,又有缺点。就我个人的观点来看,在某些地方使用它确实能使Web开发简单化。相反就是使程序变的复杂,是否使用Session变量来存取数据,这完全取决于你自己的需要,但是无论使用与否,都要考虑其优点和缺点。

/// <summary>
/// 写Session
/// </summary>
/// <typeparam name="T">Session键值的类型</typeparam>
/// <param name="key">Session的键名</param>
/// <param name="value">Session的键值</param>
public static void SetSession<T>(string key, T value)
{
    if (key.Length == 0)
        return;
    System.Web.HttpContext.Current.Session[key] = value;
}

/// <summary>
/// 读取Session的值
/// </summary>
/// <param name="key">Session的键名</param>        
public static T GetSession<T>(string key)
{
    try
    {
        if (key.Length == 0)
            return default(T);
        return (T)System.Web.HttpContext.Current.Session[key];
    }
    catch (Exception)
    {
        return default(T);
    }
   
}

/// <summary>
/// 删除指定Session
/// </summary>
/// <param name="key">Session的键名</param>
public static void RemoveSession(string key)
{
    if (key.Length == 0)
        return;
    System.Web.HttpContext.Current.Session.Contents.Remove(key);
}
Last modification:March 20th, 2019 at 09:48 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment