在ashx处理程序中保存Session中的对象,并在另一个ashx处理程序中获取该对象。怎么样?

时间:2012-12-07 12:46:36

标签: c# asp.net session httpcontext ashx

我有两个处理程序。

在Authentication.ashx处理程序中,我将对象保存在以下会话中:

HttpContext.Current.Session["ConnectionUserSession"] = userCache;

然后,我有另一个Handler,Send.ashx,我希望将对象保存在Authentication.ashx中。

我是怎么做到的? 获取对象的代码是:

UserCache userCache = (UserCache) HttpContext.Current.Session["ConnectionUserSession"];

问题: userCache总是为null,我在两个处理程序上都实现了IRequiresSessionState。

2 个答案:

答案 0 :(得分:0)

我认为他们的意思是在Authentication.ashx:

public void ProcessRequest (HttpContext context) {
    context.Session["ConnectionUserSession"] = userCache;
}

在Send.ashx中,

public void ProcessRequest (HttpContext context) {
    UserCache userCache = (UserCache) context.Session["ConnectionUserSession"];
}

答案 1 :(得分:0)

HttpContext.Current.Session["ConnectionUserSession"] = userCache;

未执行,或者用于保存和检索的字符串键不同,或者您已调用

Session.Abandon();

这两个处理程序之间。