いくつかのことをチェックする単純な HttpHandler を実行しようとしていますが (セキュリティ - これは重要ではありません)、ページに進みます。それは単純なはずですが、GetCompiledPageInstance の 1 つまたは両方のパラメーターが間違っていることは明らかです。
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" />
追加する前に取得できなかったエラーが表示されるようになりました (他の変更はありません)。
セッション状態は、構成ファイルまたは Page ディレクティブで enableSessionState が true に設定されている場合にのみ使用できます。System.Web.SessionStateModule またはカスタム セッション状態モジュールがアプリケーション構成の \\ セクションに含まれていることも確認してください。
どうでも。この 2 番目の部分に対する答えが見つかりました: HttpHandler とセッション状態の問題
ハンドラーに IRequiresSessionState を実装する