ashx中的session
最近需要做一个对特定请求进行响应的接口,只是在内部处理,不存在UI,机于这种情况,当然是使用实现IHttpHandler来进行处理,可以减掉加载HTML 控件的时间。本来都是这样想的,对于IHttpHandler 中定义了两个方法,ProcessRequest(HttpContext ctx) 和 IsRunable() 这两个,看到在ProcessRequest(HttpContext ctx) 中有个HttpContext的输入参数,本来以为通过这个就可以对所有的服务器对象进行使用,只是在前面需要对HttpContext的引用。不过问题出现了,在这个自定义HTTP 响应处理头中需要写入Session,对于其他Request和Response 都可以通过使用HttpContext来引用使用,不过Session 就是不行,总是出现对象未进行引用的错误,真是百思不得其解,好好的HTTPCONTEXT 里面都列出了可以使用的服务器对象,但是就是SESSION 用不了!真苦,只好将自定义HTTPHANDLER 的内容做到普通的WEBFORM 中。就在做好后,却无意中发现在自定义HTTPHANDLER 中使用SESSION 的方法!
1、先引用System.Web.SessionState 这个命名空间,
2、如果是要在HttpHandler 中读取Session的内容,就要在实现IHttpHandler 的类中同时实现IReadOnlySessionState 这个接口。
3、如果是要在HttpHandler 中读写Session的内容,就要在实现IHttpHandler 的类中同时实现IRequiresSessionState
这样就可以在自定义的HttpHandler 中正常的使用Session了。
1、先引用System.Web.SessionState 这个命名空间,
2、如果是要在HttpHandler 中读取Session的内容,就要在实现IHttpHandler 的类中同时实现IReadOnlySessionState 这个接口。
3、如果是要在HttpHandler 中读写Session的内容,就要在实现IHttpHandler 的类中同时实现IRequiresSessionState
这样就可以在自定义的HttpHandler 中正常的使用Session了。