c#类库中使用Session

摘要:
如果我们只在一个地方使用Session,我们可以直接在aspx页面中操作,并且只修改一个地方。但是,当您操作会话时,可能会有多个页面。如果修改会话,可能需要修改多个页面,这将非常麻烦。主要有两种解决方案。一个是基类页面。添加基类页面。该页面继承自System.Web.UI.page,并在基类页面中处理会话。其他涉及Session操作的操作从基类页继承。本文主要介绍第二种方法,即使用类库来操作会话。

网站开发中,为了保存用户的信息,有时候需要使用session。如果我们在aspx页面中使用Session,只需要Session["key"]=value就可以,获取时使用int userid=Session["userid"],但是在赋值时,我们可能需要判断Session是否为空,是否能转换成int类型。如果只在一处使用Session,那么我们可以直接在aspx页面中操作,修改也只需修改一处。

但在操作Session时,可能会在多个页面,如果修改Session,可能需要修改多个页面,这样会非常的繁琐。解决的办法主要有两个,一个是基类页面,添加一个基类页面,页面继承自System.Web.UI.Page,在基类页面中处理Session。其它的涉及Session操作的继承自基类页面。二是使用类,如果在asp.net项目中使用类,只需要引用

using System.Web;

using System.Web.SessionState;

然后定义

private static HttpSessionState _session = HttpContext.Current.Session;

就可以通过_session操作Session了。

本文主要介绍第二种方式,而且是使用类库操作Session的方法。

1.新建一个类库

2.添加引用,解决方案资源管理器中,右键“引用”-》“添加引用”-》.net-》选择“System.Web”-》点击“确定”

3.添加一个类,在类中引用

using System.Web;

using System.Web.SessionState;

4.操作Session,主要涉及添加,获取,清除。其它的如修改、删除也可添加。主要代码如下:

private static HttpSessionState _session = HttpContext.Current.Session;
public static void SetSession(string key,object value)
{
    _session[key] = value;
}
public static int GetSessionNumber(string key)
{
    int result = 0;
    if(_session[key]!=null)
    {
        int.TryParse(_session[key].ToString(), out result);
    }
    return result;
}
public static string GetSessionString(string key)
{
    string result = "";
    if(_session[key]!=null)
    {
        result = _session[key].ToString();
    }
    return result;
}
public static void Clear()
{
    _session.Clear();
}

免责声明:文章转载自《c#类库中使用Session》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaScript 拖放效果使用Golang 封装一个Api 框架 ----- 数据库操作篇(gorm引入)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring-session之一:简介、使用及实现原理

一、背景 http session(企业)一直都是我们做集群时需要解决的一个难题,我们知道HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到两个不同的web站点中去。那么问题...

Java Web项目案例之---登录和注册(精华版)

登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是post,必须有value,enctype必须是multipart/form-data) 3.图片上传后的名称不能重复,使用随机生成的字符串(UUID) 4....

普通Java类获取spring 容器的bean的5种方法

本文转载自:http://www.cnblogs.com/duanxz/archive/2014/06/18/3794075.html 方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSupport方法四:继承...

PHP漏洞之session会话劫持

本文主要介绍针对PHP网站Session劫持。session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能。 服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用 户的sessio...

session文件包含漏洞复现

一、环境搭建 文件包含漏洞测试代码  file.php <?php $filename = $_GET['filename']; include($filename); ?> session内容可控测试代码  session.php <?php session_start(); $ctfs=$_GET['ctfs'];...

Flex session和HTTP session过期时间(timeout)的设置方法

以下设置的timeout都是30分钟,不同的设置方法有不同的参数时间单位,请大家小心。   用代码对flex的session_timeout设置: //时间单位为“毫秒” FlexContext.getFlexSession().setTimeoutPeriod(30*60*1000);     用代码对flex的flexclient_timeout设置...