Шаг 6 - Первый фильтр

Наш первый фильтр будет запрещать все что можно, то есть он не будет давать возможности передавать 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 возьмет документ из этого каталога и Вы не увидите никакого эффекта.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.