在ashx页面使用Session的方法

2014-09-23 19:52:37|?次阅读|上传:huigezrx【已有?条评论】发表评论

关键词:C#, ASP.NET, Web|来源:唯设编程网

在一般事务处理页面,可以轻松的得到 Request,Response等对象,从而进行相应的操作,如下:

HttpRequest Request = context.Request;

HttpResponse Response = context.Response;

但是要得到 Session的值就没有那么简单了。比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"],如果你直接使用context.Session["userAccount"]的话会报 “未将对象引用设置到对象的实例”的异常,如果要想取Session中的值 ,需要实现IRequiresSessionState接口,如下所示

1、引入 命名空间:

using System.Web.SessionState;

2、实现IRequiresSessionState接口,具体如下 

public class UEditorHandler : IHttpHandler,IRequiresSessionState
{    
    public void ProcessRequest(HttpContext context)
    {
        //验证用户登录
        string strUserName = null;
        object username = HttpContext.Current.Session["userName"];
        if (username != null)
        {            
            strUserName = Convert.ToString(username);       
        }        
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

实现IRequiresSessionState接口无需额外实现其它方法,这样,你就可以正常使用Session了。

发表评论0条 】
网友评论(共?条评论)..
在ashx页面使用Session的方法