【问题标题】:ASP.NET 2.0 HttpModule or HttpHandlerASP.NET 2.0 HttpModule 或 HttpHandler
【发布时间】:2014-10-22 17:22:33
【问题描述】:

我正在改进用于身份验证/授权的应用。 该应用程序是asp的,但我对它很陌生。

到目前为止,我已经能够创建一个 HttpModule 和 HttpHandler 并在 IIS 管理器中注册它们。

首先,我尝试了一个 HttpModule,并成功地使用在托管资源上运行的模块进行 AA。我正在使用 PreRequestHandlerExecute 方法,所以我可以访问会话。由于某种原因,当其他页面运行时,菜单之类的部分开始丢失。在模块代码中,我只是在会话中放置了一个变量。为什么会这样?

接下来我尝试了针对特定路径的 HttpHandler。我在那里似乎很幸运,但是实际的登录表单提交后会导致错误。可能是因为表单是在服务器上运行的,并且由于处理程序在它前面,所以它看到了一些会话等不好的东西。

如果我删除 HttpModule/HttpHandler 应用程序工作正常,但显然没有所需的 AA。所以我缺少使用 HttpModule/HttpHandler 的关键部分

我已经解决了许多常见问题,例如空会话等。

我已经多次使用 Filter/FilterChain 在 Java Server/Jsp 中完成此类工作,但 ASP.NET 对我来说太新了,无法弄清楚 API/语法。

我需要找到最简单的方法来添加可以与现有表单登录一起使用的 HttpModule/HttpHandler,但允许我执行一些 AA 并为 AA 执行重定向或会话管理。我考虑过只在 aspx 页面中使用脚本 等。

任何建议表示赞赏。

【问题讨论】:

    标签: c# asp.net session httphandler httpmodule


    【解决方案1】:

    每个请求都会命中HttpModuleHttpHandler 通常在特定扩展上运行。

    通常对于身份验证,您需要在模块中使用它,因为您需要检查每个请求以查看它是否已通过身份验证。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多