我正在尝试做一个简单的 HttpHandler 来检查一些事情(安全性 - 虽然这并不重要)并继续页面。它应该很简单,但我显然有 1 个或两个参数到 GetCompiledPageInstance 不正确:
public void ProcessRequest(HttpContext context)
{
if (CheckAccess(context))
PageParser.GetCompiledPageInstance(context.Request.Path, context.Request.PhysicalPath, context);
}
public bool IsReusable { get { return false; } }
private bool CheckAccess(HttpContext context)
{
return true;
}
这是一个网站,而不是应用程序,尽管我认为这没有什么不同。
当我将处理程序代码添加到 Web 配置时
<add name="SecurityHandler" verb="*" path="*.aspx" type="SecurityHandler" />
现在我收到一个在添加之前没有得到的错误(没有其他更改):
会话状态只能在 enableSessionState 设置为 true 时使用,无论是在配置文件中还是在 Page 指令中。还请确保 System.Web.SessionStateModule 或自定义会话状态模块包含在应用程序配置的 \\ 部分中。
没关系。找到了第二部分的答案:HttpHandler 和会话状态的问题
在处理程序中实现 IRequiresSessionState