代码改变世界

为自定义 HTTP 处理程序(HttpHandler)开启会话状态(Session)

2006-08-14 18:19  晓风残月  阅读(...)  评论(... 编辑 收藏
通过实现IHttpHandler可以方便的对ASP。net应用程序进行扩展,并实现一些底层的交互。
今天,偶然碰到了,在实现IHttpHanlder的类中无法访问Session,HttpContext.Current.Session返回的是NULL,
查了MSDN,原来:
如果您的处理程序将访问会话状态值,它必须实现 IRequiresSessionState 接口(不包含任何方法的标记接口)。

果然,只要对自定义类加上一个IRequiresSessionState标记接口就可以了,也不需要实现任何的方法。

与此,同时还有另一个接口:IReadOnlySessionState接口,用于指示Http处理程序,对Session有只读的权限,也是空接口,无需实现任何方法。