Наш первый фильтр будет запрещать все что можно, то есть он не будет давать возможности передавать HTML документ клиенту :-) Зачем такой нужен ??? Ну во-первых попробовать, а во-вторых ситуации когда надо запретить передачу документа клиенту бывают часто. Например, при реализации защиты от Teleport Pro :-). Ну давайте изменим наш фильтр. Отключение пользователя мы посадим на функцию запроса URL. Надо перегрузить функцию OnUrlMap и написать такой код.
DWORD CMyFilterFilter::OnUrlMap(CHttpFilterContext* pfc, PHTTP_FILTER_URL_MAP pUrlMap) { return SF_STATUS_REQ_FINISHED; }
То есть мы ничего не делаем, а только возврашаем код, который в прямом смысле говорит Финиш :-). Дальше ничего не будет, сервер просто отправит проводник к другому серверу. Для того, чтобы это заработало надо обязательно проверить флаг уведомления SF_NOTIFY_URL_MAP. Об этом событии в GetFilterVersion:
BOOL CMyFilterFilter::GetFilterVersion(PHTTP_FILTER_VERSION pVer) { ...... pVer->dwFlags |= SF_NOTIFY_ORDER_HIGH | SF_NOTIFY_SECURE_PORT | SF_NOTIFY_NONSECURE_PORT | SF_NOTIFY_URL_MAP | SF_NOTIFY_END_OF_NET_SESSION; ...... }
Установите фильтр. Об этом Вы можете почитать в разделе IIS и попробуйте. Обязательно очищайте временный каталог интернет файлов C:\WINNT\Temporary Internet Files. Иначе этот умный Exploler возьмет документ из этого каталога и Вы не увидите никакого эффекта.