ASP.NET中Session高级使用技巧(在非Page类中使用Session)

 


引用:http://blog.csdn.net/wonsoft/archive/2009/01/23/3851594.aspx


在开发Aspx .NET软件时,有时需要把常用的东西封装到一个非PAGE类中,文章介绍在非Page类中使用Session的方法。

一、PAGE参数法:

1DLL中类的实现。

public class UserManager   

{   

   private Page page;   

   public UserManager(Page dd)   

    {   

        page=dd;   

    }   

    public string GetUser()   

     {   

      return page.Session["user"];   

     }   

}   

2PAGE中调用:

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接口,这是一个标记接口,不需要实现任何函数,但你不用它标记一下你的类就肯定访问不了Session

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;   

     }   

}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值