ashx中使用session的方法(获取session值)
web开发,在一般处理程序中,很容易得到 request和response对象,如:
httprequest _request = context.request;
httpresponse _response = context.response;
但是要得到 session的值就没有那么简单了。
比如如果要在ashx得到保存在session中的登录用户信息 session["loginuser"]
如果仅仅使用 context.session["loginuser"] 的话,是会报 “未将对象引用设置到对象的实例”的异常!
具体要使用下列方法:
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.sessionstate;
namespace dtlcalendar.mobile.site.manage
{
/// <summary>
/// delapk 的摘要说明
/// </summary>
public class delapk : ihttphandler, ireadonlysessionstate
{
// ireadonlysessionstate :只读访问session
// irequiressessionstate :读写访问session
public void processrequest(httpcontext context)
{
string strid = context.request["id"];
context.response.clear();
context.response.contenttype = "text/plain";
int id;
string user;
if (int.tryparse(strid, out id) && isloged(context, out user))
{
string reslt = dataprovider.mobiledataprovider.createinstance().delmapk(id).tostring();
bll.logoprhelper.instance.insertmlog(user, bll.logopr.delete, "delapk result:" + reslt);
context.response.write(reslt);
}
else
{
bll.logoprhelper.instance.insertmlog(strid, bll.logopr.delete, "delapk result:-1");
context.response.write("-1");
}
}
private bool isloged(httpcontext context, out string user)
{
bll.user _user;
if (context.session["loginuser"] != null)
{
_user = context.session["loginuser"] as bll.user;
if (_user != null)
{
user = _user.account;
return true;
}
}
user = string.empty;
return false;
}
public bool isreusable
{
get
{
return true;
}
}
}
}
推荐阅读
-
ashx中使用session的方法(获取session值)
-
PHP中session跨子域的三种实现方法
-
分布式环境中三种Session管理方法的使用场景及优缺点 . 博客分类: java基础
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
-
Java使用keySet方法获取Map集合中的元素
-
Java使用entrySet方法获取Map集合中的元素
-
Python中执行存储过程及获取存储过程返回值的方法
-
*.ashx文件不能访问Session值的解决方法
-
Hibernate中Session.get()方法和load()方法的详细比较
-
Java使用keySet方法获取Map集合中的元素