Во-первых, вы уверены, вы хотите это сделать? IP-спуфинг был бы идеальным способом атаковать ваш сайт, если бы кто-нибудь мог угадать диапазон IP-адресов, которые вы не проверяли! Даже если они просто знали диапазон адресов, это делает атаку грубой силой тривиальным.
Во-вторых, вы можете просто проверить IP-адрес на странице входа в систему и перенаправить оттуда ... нет необходимости в HttpModule. Но, опять же, я бы НЕ сделал этого на твоем месте.
ОБНОВЛЕНИЕ: R G - пара вещей. Я думал, что вы сделаете вызов Authenticate () перед перенаправлением. Это позволит избежать повторного выполнения цикла перенаправления. Но, похоже, тебе это даже не нужно, потому что ...
Во-вторых, из вашего комментария ниже (в посте Бена) вы будете использовать этот код в веб-сервисе. Если это так, не могли бы вы разместить веб-сервис на странице Web.Config в качестве страницы разрешенного доступа? Просто добавьте это:
<location path="YourWebService.asmx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Это то, что мы делаем, хотя мы требуем, чтобы пользователи нашего веб-сервиса отправляли «волшебную фразу» до того, как мы обработаем запрос веб-сервиса (он также зашифрован SSL).