您的位置:首页 > 编程语言 > ASP

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;   
     }   
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  session asp.net dll null user