我最近将一些 AJAX 查询切换为使用 ashx 文件而不是 aspx,发现它Response.End
不再流行。在我现在看到的情况下,采购订单的提交由 ashx 处理。用户单击 PO 上的提交按钮,ashx 文件将时间和用户记录在数据库表中。具有当前用户数据(包括他们的主键)的对象存储在 Session 中,并由自定义 Profile Provider 记录在那里。我添加IReadOnlySessionState
是为了能够访问会话,但似乎除非访问了另一个 .net 页面,否则配置文件提供程序不会运行并且会话没有值。(通过单步执行代码进行验证。)
我试过IRequiresSessionState
了,但结果一样。
我假设System.Web.UI.Page
HttpHandler 实例化了自定义配置文件(如果还没有),我需要将它添加到我的自定义 HttpHandler 中。
我简要地查看了 HttpModules,但我认为这不是我想要的,因为它们会为每个请求加载。