zoukankan      html  css  js  c++  java
  • 自己定义的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.
  • 相关阅读:
    React—ref 属性
    【支付宝SDK】沙箱调试,以及遇到的坑
    python 字符串相乘
    微信小程序授权获取手机号 出现-41003错误
    微信小程序 动态添加 view input picker
    PHP 获取当月的第一天和最后一天
    微信小程序 弹窗组件
    微信小程序 图片等比例 适应屏幕尺寸
    微信小程序图片预览
    div背景图占满
  • 原文地址:https://www.cnblogs.com/WuCountry/p/372951.html
Copyright © 2011-2022 走看看