none
请教:只要调用Session将生成的验证码存入session,验证码就不能显示是什么原因 RRS feed

  • 问题

  •  public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "img/jpeg";
            Common.ValidateCode vc = new Common.ValidateCode();
            string code = vc.CreateValidateCode(4);
            vc.CreateValidateGraphic(code, context);
            context.Session["vcode"] = code;
        }

    如上代码,加一行context.Session["vcode"] = code; 验证码就无法显示。注释掉那一行,验证码立刻在网页正常显示。

    我用的是Vs2013,NETframework4.5

    调试模式时会报错:


    是不是因为Session配置的问题呢?

    • 已编辑 lvzhip 2016年3月8日 13:02
    2016年3月8日 10:52

答案

  • 你好,

    根据你的错误信息,是因为HttpContext.Current.Session  对象为空导致的。这个地方出错了,导致图片不能显示。

    你需要做两步:

    一、在你的一般处理程序中添加命名空间 (using System.Web.SessionState;)

    二、在你的类后继承 IHttpHandler, IRequiresSessionState

    这样你就可以通过获取Session值了

    Best regards,

    Cole Wu

    • 已标记为答案 lvzhip 2016年3月9日 0:22
    2016年3月8日 14:34

全部回复

  • 你好,

    根据你的错误信息,是因为HttpContext.Current.Session  对象为空导致的。这个地方出错了,导致图片不能显示。

    你需要做两步:

    一、在你的一般处理程序中添加命名空间 (using System.Web.SessionState;)

    二、在你的类后继承 IHttpHandler, IRequiresSessionState

    这样你就可以通过获取Session值了

    Best regards,

    Cole Wu

    • 已标记为答案 lvzhip 2016年3月9日 0:22
    2016年3月8日 14:34
  • 十分感谢。

    原来是这么回事儿

    2016年3月9日 0:22