Я хочу заменить старый фильтр ISAPI, который работал на IIS6. Этот фильтр проверяет, имеет ли запрос особый вид, затем обрабатывает заголовок и продолжает выполнение запроса. В методе манипуляции, который мне нужен для вызова другого специального модуля ISAPI, добавлены два заголовка.
Итак, у меня есть код ISAPI C ++, например:
DWORD OnPreProc(HTTP_FILTER_CONTEXT *pfc, HTTP_FILTER_PREPROC_HEADERS *pHeaders)
{
if (ManipulateHeaderInSomeWay(pfc, pHeaders))
{
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
return SF_STATUS_REQ_FINISHED;
}
Теперь я хочу переписать этот фильтр ISAPI в качестве управляемого модуля для IIS7. Итак, у меня есть что-то вроде этого:
private void OnMapRequestHandler(HttpContext context)
{
ManipulateHeaderInSomeWay(context);
}
И что теперь? Похоже, запрос не делает то, что должен?
Я уже написал собственный модуль IIS7, который реализует тот же метод. Но у этого метода есть возвращаемое значение, с помощью которого я могу сказать, что делать дальше:
REQUEST_NOTIFICATION_STATUS CMyModule::OnMapRequestHandler(IN IHttpContext *pHttpContext, OUT IMapHandlerProvider *pProvider)
{
if (DoSomething(pHttpContext))
{
return RQ_NOTIFICATION_CONTINUE;
}
return RQ_NOTIFICATION_FINISH_REQUEST;
}
Так есть ли способ снова отправить мой измененный контекст?