Session在类库中的使用

转自:http://www.cnblogs.com/JiangXiaoTian/articles/3490904.html

网站开发中,为了保存用户的信息,有时候需要使用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();
}

注释:session有效时间默认为20分钟,内容来自中国站长资讯网(www.chinahtml.com)这个时间是指,当用户登录后,如果没有任何动作,即不在web上有请求.将维持这个用户的身份有效时间是20分钟,如果这个用户一直与web有请求操作,那么,这个时间一直没有算在20分钟内,即,如果用户登录后,即便操作一个小时,那么也不会出现超时,除非用户与服务器之间掉线。

Session对象默认失效期为20分钟,用户也可以在Web.Config中对其进行设置。

配置Web.Config文件的方法如下:
      在Web.Config文件的<system.web></system.web>节点中添加如下代码,设置Session的生命周期为10分钟。

代码: <sessionState mode="InProc" timeout="10"></sessionState>

时间: 2024-10-14 08:53:48

Session在类库中的使用的相关文章

java 线程 新类库中的构件 countDownLatch 使用

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > package org.rui.thread.newc; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.

java类库中的设计模式

原帖:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns 提问:我正在学习GoF的<设计模式>,想了解些它们在实际中的应用的样例. 大家能给我举一些使用设计模式的好样例吗?尤其是在Java类库中. 获得赞同最高的回答: 你能够通过Wikipedia对设计模式有个总体上的理解.Wikipedia上也提高了GoF所涉及到的模式.我这里总结一下,而且尽可能指出在JavaSE与JavaEE的API中是怎样

将数据库模型放入到.Net Core的类库中

一.前提概要 今年某天突然无聊,就决定学习.net core,此时的版本已经是.net core 1.1了.之前一直是用.net framework做项目,一直对Html.EditFor()等Html Helper不爽,感觉灵活性太差,此次看了微软的docs文档后,感觉到了.net core的强大之处,特别是Tag Helper,便决定投身到此平台中,但在新项目中发现了一个问题:之前做项目都是将数据库模型放在单独类库中,但现在发现.net core 类库的配置不一样,总是有问题,于是开始用bin

在类库中使用MessageBox

错误: 机房收费系统(VB.Net版)过程中,在D层的SqlHelper类中有一个异常捕获处理,捕获了异常之后想使用MessageBox.Show()弹出异常描述,但在编译时出现了"未声明"MessageBox".它可能因其保护级别而不可访问."的错误: 查看帮助,MSDN给出的解释是:语句引用某个编程元素,但编译器无法找到具有该确切名称的元素. 判断: 编译器无法识别,但MessageBox在窗体应用程序中可以使用,而且MessageBox.Show()为.Net

从类库中调用log4net的方法简介

大家在开发程序的时候,都会也必须用上日志功能.当前常用的日志工具可能就是log4net了.在当前基于框架的开发模式下,log4net都是在类库中调用(在核心服务类中作为一个服务供解决方案里的所有项目调用).在这种情况下常见的log4net调用设置显然是无法实现日志功能.经过实验,在完成以下几个步骤后,可以实现上述的功能:1.建立一个类库,在引用中加载log4net.dll:2.在AssemblyInfo.cs文件最后添加[assembly: log4net.Config.XmlConfigura

.NET Core在类库中读取配置文件appsettings.json

在.NET Framework框架时代我们的应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别用 System.Configuration.ConfigurationManager.AppSettings["SystemName"];//读取appSettings配置 System.Configuration.ConfigurationManager.ConnectionStrin

在类库中引用WebService的注意事件

在VS中 添加引用服务之后 会在 类库中生成一个app.config的文件 把里面的配置节点 添加到web项目中的 web.config中 即可.不然会报 错误

MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题

///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode="Forms">      <forms loginUrl="~/Account/Login" timeout="2880" cookieless="UseCookies" />    </authent

你会在C#的类库中添加web service引用吗?

本文并不是什么高深的文章,只是VS2008应用中的一小部分,但小部分你不一定会,要不你试试: 本人对于分布式开发应用的并不多,这次正好有一个项目要应用web service,我的开发环境是vs2008,之所以没有选择现在热门的WCF,本人有如下原因: 1:负责开发Web Service的小组对于vs2008应用不多,更不能奢望令人垂涎的WCF.     2:项目开发时间有限,根本不许你去拿项目做实验.     3:项目改动不大,web service足够对付需求.       由于我们的项目是从