我正在改进用于身份验证/授权的应用。 该应用程序是asp,但我对它很不熟悉。
到目前为止,我已经能够创建一个HttpModule和HttpHandler并在IIS管理器中注册它们。
首先,我尝试了一个HttpModule,并且在管理资源上运行模块的情况下成功完成了AA。我使用PreRequestHandlerExecute方法,因此我可以访问会话。出于某种原因,当其他页面运行时,菜单开始丢失。在模块代码中,我只是在会话中放入一个变量。为什么会这样?
接下来,我尝试了针对特定路径的HttpHandler。我好像有运气,但实际登录表单提交后会导致错误。可能是因为表单是runat服务器,并且由于处理程序在它之前,它会看到某些会话等错误。
如果我删除HttpModule / HttpHandler,应用程序工作正常,但显然没有AA需要。所以我缺少使用HttpModule / HttpHandler
的关键部分我已经遇到了许多常见问题,例如我已经解决的空会话等问题。
我已经多次使用Filter / FilterChain在Java Server / Jsp中完成了这种类型的工作,但是对于我来说,ASP.NET对于找出API /语法来说太新了。
我需要找到最简单的方法来添加一个可以使用现有表单登录的HttpModule / HttpHandler,但是允许我做一些AA并为AA进行重定向或会话管理。我考虑过只使用脚本< %%> aspx页面中的等等。
任何建议表示赞赏。
答案 0 :(得分:0)
每次请求都会点击HttpModule
。 HttpHandler
通常在特定扩展程序上运行。
通常,对于身份验证,您需要在模块中使用它,因为您要检查每个请求以查看它是否经过身份验证。