`
v5qqbrowser
  • 浏览: 356384 次
文章分类
社区版块
存档分类
最新评论

在一般处理文件中访问Session需要添加IRequiresSessionState(转载)

 
阅读更多

通常我们经常,通过session判定用户是否登录。还有一些临时的、重要的数据也尝尝存放在Session中。

在页面我们很容易的得到Session的值,但在类中就会遇到一些问题。也知道通过下面的方法得到。

System.Web.HttpContext.Current.Session["userinfo"];

但是今天此种方法也失灵了。在做一个小应用时,需要实现IHttpHandler,同时也需要用到用户的标识。但是在这个类中怎么也不能找到Session的值,曝出

System.Web.HttpContext.Current.Session为null

  为什么得到的Session会是空呢?想了好久也没想通。找了好久,才找到了高人的指点,问题得到了解决。

解决方法:

  在实现IHttpHandler的同时,也要实现IRequiresSessionState接口,其命名空间为:System.Web.SessionState。

publicclass WatermarkHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState{}

继续追踪:

  为什么要实现这个接口呢?这个接口是做什么用的呢?继续追踪,MSDN给了最终解释。

  IRequiresSessionState

  指定目标 HTTP 处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。

  作用:

在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权
  所以记得哦,如果在自定义HTTP处理程序中,要访问Session,记得一定要实现这个接口哦。
切记切记!!!

分享到:
评论

相关推荐

    利用IRequiresSessionState让handler获取session

    利用IRequiresSessionState让handler获取session

    Asp.Net 一般处理程序.pdf

    ashx:.ashx文件是主要用来写web handler的。使用.ashx 可以让你专注于编程...ashx必须包含IsReusable属性(这个属性代表是否可复用,通常为true),而如果要在ashx文件用使用Session必须实现IRequiresSessionState接口.

    ASP.NET ASHX中获得Session的方法

    1-在 aspx和aspx.cs中,都是以Session[“xxx”]=”aaa”...2-在ashx文件中,要对Session进行成功的读写,应该在使用 Session的class后增加接口IRequiresSessionState (添加  时可能提示添加命名空间 using System.We

    ajax异步留言

    如果要使用session的话,在handler的代码中添加System.Web.SessionState的引用, 并让这个handler继承IRequiresSessionState接口,一定要继承这个接口,否则会出错的。 以上本人简单总结 只有用使用到它才能感觉到...

    asp.netajaxupload

    本例采用asp.net C#+ jquery +ajax的实现 ...如果要使用session的话,在handler的代码中添加System.Web.SessionState的引用, 并让这个handler继承IRequiresSessionState接口,一定要继承这个接口,否则会出错的。

    c#在WebAPI使用Session的方法

    最近在改写WebApp时要将以前用泛型处理例程写的Captcha 改成使用WebApi 来实作机制,在实作的过程中发现使用IRequiresSessionState session也无法使用(context.Session==null) 查过一些文章才发现需要在注册api路由...

    asp.net HttpHandler操作Session的函数代码

    public class HandleDataRequst : IHttpHandler, IRequiresSessionState { public void ProcessRequest (HttpContext context) { //context.Session[“name”] } 这里的重点是一定要实现IRequiresSessionState或者...

    asp.net handler的使用源代码

    示例1: using System; using System.Collections.Generic;... context.Session["Test"] = "测试HttpHandler容器中调用Session"; context.Response.Write(context.Session["Test"]); } #endregion } }

    asp.net+jquery+ajax简单留言板例子 v1.1

    如果要使用session的话,在handler的代码中添加System.Web.SessionState的引用, 并让这个handler继承IRequiresSessionState接口,一定要继承这个接口,否则会出错的。 以上本人简单总结 只有用使用到它才能感觉到...

    ASP.NET笔记之Session、http、web开发原则、xss漏洞的详细介绍

    public class YZM : IHttpHandler, System.Web.SessionState.IRequiresSessionState{ public void ProcessRequest (HttpContext context) { context.Response.ContentType = “image/JPEG”; u

    随机生成6位图片验证码

    public class PicHandler1 : IHttpHandler, IRequiresSessionState { private string mCheckNo = string.Empty; protected ImgBuilder _ImgBuilder = new ImgBuilder(); protected VryImgGen _ImgBuilderNew = ...

    ASP.NET简单实现注销功能

    2.一般处理程序:LogoutHandler.ashx /// /// LogoutHandler 的摘要说明 /// public class LogoutHandler : IHttpHandler,IRequiresSessionState { public void ProcessRequest(HttpContext context) { ...

    ASP.NET中的URL过滤实现代码

     namespace QTJZ { public class Filters : IHttpModule, IRequiresSessionState { public void Dispose() { } public void Init(HttpApplication application) { application.AcquireRequestSt

    ASP.NET:注销功能实现

    一般处理程序:LogoutHandler.ashx 1 /// 2 /// LogoutHandler 的摘要说明 3 /// 4 public class LogoutHandler : IHttpHandler,IRequiresSessionState 5 { 6 public void ProcessRequest(Htt

    浅析泛型类接口定义

    定义最基本的泛型类如下: 代码如下:public abstract class GetDataBase<T> :IHttpHandler, IRequiresSessionState { protected abstract T GetModel(HttpContext context); protected abstract IList<T> GetList...

    随机图片生成器制作方法分享

    代码如下:///  /// PicHandler1 的摘要说明 ///  public class PicHandler1 : IHttpHandler, IRequiresSessionState { private string mCheckNo = string.Empty; protected ImgBuilder _ImgBuilder = new ...

Global site tag (gtag.js) - Google Analytics