• 自己定义的httpHandlers无法使用Session(ASP.net 1.1)


    我不知道这是不是一个小BUG,但我已经没有办法解决这样的问题。
    在自己定义的一个httpHandlers里,无法使用Session,每次出现的错误是对象没有引用到实例。经过调试发现HttpContent里根本没有Session对象。
    而且郁闷的是,不管是自己的实现了IHttpHander的类,还是从Page继承下来的类,只要在Web.Config里添加了这个Hander,那么在处理这个Hander的时候,都是无法使用Session对象的。
    当然,应该不只Session对象不能使用,应该还有其它对象不能用,只是我没有一一验证。

    另处一个问题就是关于验证码的问题。如果自己写了一个Page用来生成动态的验证码,但应用程序已经使用了From验证,那么在请求验证码的时候就会要先请求Form验证,从而形成了一种死循环。
    形成这种死循环的不仅仅是验证码上与Form验证的问题,同样也存在于页面的验证上。
    一般,我们是采用login.aspx做为登录页面,而这时,默认的login.aspx是不须要验证的,否则就会进入死循环,从而使IIS挂起。
    形成这样设计错误很容易,例如我们做了一个父类,用于所有的页面。而这个父类是要求验证的,这时,如果login.aspx也从这个父类派生的话,那么这样的死循环就会出现。
    再加上验证码及Handler里的一些问题,就已经使得一个B/S结构的应用程序无法在单个Application上部署了。

    当然,要解决上面的问题其实也很简单:
    1、生成的验证码的页面不用验证就行了。因此,有两种做法,一是另外加一个web.config,从而使它可以在不用验证的情况下生成图片。
    2、页面验证的死循环问题,如果login页面也想从要求验证的父类继承,那么唯一可行的办法是重载父类的验证方法,或者在login页面上添加自己的特别认证,例如:给一个公共账号,使它成为可以通过login页面认证的账号。
    3、HttpHander里无法访问Session的问题,我目前没有办法解决,可行的方法是放弃使用HttpHander而用Page.
  • 相关阅读:
    常见数据结构图文详解-C++版
    求单链表中环的起点,原理详解
    Qt Creator 整合 python 解释器教程
    Qt 共享库(动态链接库)和静态链接库的创建及调用
    qt creator 中的"提升为..."功能简介
    QT 操作 excel 教程
    网易2017校园招聘算法题c语言实现源码
    c语言版贪吃蛇小游戏
    mysql语法结构
    Spring MVC rest接收json中文格式数据显示乱码
  • 原文地址:https://www.cnblogs.com/WuCountry/p/372951.html
Copyright © 2020-2023  润新知