ASP.NET中Session高级使用技巧(在非Page类中使用Session)
2009-05-19 23:34
411 查看
引用:http://blog.csdn.net/wonsoft/archive/2009/01/23/3851594.aspx
在开发Aspx .NET软件时,有时需要把常用的东西封装到一个非PAGE类中,文章介绍在非Page类中使用Session的方法。
一、PAGE参数法:
1、DLL中类的实现。
public class UserManager
{
private Page page;
public UserManager(Page dd)
{
page=dd;
}
public string GetUser()
{
return page.Session["user"];
}
}
2、PAGE中调用:
public class CheckPage : Page
{
public CheckPage()
{
UserManager um = new UserManager (this);
string usr = um.GetUser();
//具体处理
}
}
二、直接调用System.Web.HttpContext.Current.Session["key"]法。
如果在非Page类中直接使用System.Web.HttpContext.Current.Session["key"]肯定会抛出异常,因为此时System.Web.HttpContext.Current.Session=null。一个类要访问Session,必须实现(或在基类已实现)IRequireSessionState接口,这是一个标记接口,不需要实现任何函数,但你不用它标记一下你的类就肯定访问不了Sessi
b6a7
on。
public class UseSession : System.Web.SessionState.IRequiresSessionState {
static public int GetSessionCount()
{
return System.Web.HttpContext.Current.Session.Count;
// 说明:如果不继承IRequiresSessionState接口的话,此时会抛出异常。
}
}
如果你只需要读Session,也可以用IReadonlySessionState接口,效果类似,不过是对Session只读。
public class UseSession : System.Web.SessionState.IReadOnlySessionState
{
static public int GetSessionCount()
{
return System.Web.HttpContext.Current.Session.Count;
}
}
相关文章推荐
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- asp.net Session 高级使用
- ASP.NET 2.0中使用Gridview控件的高级技巧
- [ASP.NET学习笔记之十七]ASP.NET DataGrid 高级使用技巧
- Asp.net的正则表达式使用高级技巧
- ASP.NET 2.0 绑定高级技巧
- Asp.Net MVC Identity 2.2.1 使用技巧(六)
- asp.netGridView使用技巧
- 在ASP.NET中使用Session常见问题集锦
- ASP.NET中在一般处理程序中使用session的简单介绍
- Asp.Net之Session简介及使用
- 【转载】在asp.net中使用session常见问题
- 自己定义的httpHandlers无法使用Session(ASP.net 1.1)
- [转]UltraWebGrid控件在开发ASP.NET项目中的使用方法和技巧
- ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
- ASP.NET Session无法使用或易丢失