Я пытаюсь сделать простой HttpHandler, который проверяет некоторые вещи (безопасность - хотя это неважно) и продолжает переход на страницу. Это должно быть просто, но у меня, очевидно, один или оба параметра 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;
}
Это веб-сайт, а не приложение, хотя я не думаю, что это имеет значение.
Когда я добавляю код обработчика в веб-конфигурацию
<add name="SecurityHandler" verb="*" path="*.aspx" type="SecurityHandler" />
Теперь я получаю сообщение об ошибке, которого не было до добавления (никаких других изменений):
Состояние сеанса можно использовать, только если для параметра enableSessionState установлено значение true, либо в файле конфигурации, либо в директиве Page. Также убедитесь, что System.Web.SessionStateModule или настраиваемый модуль состояния сеанса включен в раздел \\ конфигурации приложения.
Не бери в голову. Нашел ответ на эту вторую часть: Проблема с HttpHandler и состоянием сеанса
реализовать IRequiresSessionState в обработчике