Вы можете сделать это, изменив сопоставления обработчиков, либо в IIS, либо через сопоставления httpHandler, определенные в web.config.
Или вы можете сделать это с помощью HttpModule.
Однако, поскольку вы уже используете asp.net (чтобы судить по вашим тегам) и у вас есть только одно исключение, то, вероятно, более простой способ - просто сделать это на этом уровне. Если нет, то логика почти такая же, как при использовании HttpModule.
В вашем базовом классе страниц (если вы еще не определили абстрактный класс между System.Web.UI.Control.Page и вашими собственными страницами, на которые стоит взглянуть, это удобное место для размещения часто используемых методы) поместите виртуальный член, который вызывается перед главным обработчиком загрузки страницы (например, есть метод OnLoad, который вызывает его, а затем ваш «реальный» метод загрузки страницы).
В этом методе проверьте используемый метод http, и, если он неправильный, задайте код состояния 405, выведите страницу ошибки для бонусных отметок, а затем остановите всю обработку.
На вашей странице, которая позволяет получить, переопределить и изменить метод, который вы проверяете.
Если ваша структура класса не позволяет сделать это легко, то подход HttpModule будет проще. Здесь вам нужно изучить URI, чтобы узнать, какой метод разрешить, но в остальном это почти то же самое.