在IIS ISAPI筛选器中设置自定义标头值

时间:2010-03-18 17:12:06

标签: c++ iis isapi

我有一个ISAPI过滤器,用于为我的CMS进行URL重写。我正在处理SF_NOTIFY_PREPROC_HEADERS通知,并试图这样做:

DWORD ProcessHeader(HTTP_FILTER_CONTEXT *con, HTTP_FILTER_PREPROC_HEADERS *head)
{
    head->SetHeader(con, "test1", "aaa");
    con->AddResponseHeaders(con, "test2:bbb\r\n", 0);
    return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

但是,我似乎无法使用经典ASP或PHP中的服务器变量或响应头来读取这些值。价值观缺失。我希望我的“test1”或“test2”标题值出现,但它们不是。我在这里做错了吗?

2 个答案:

答案 0 :(得分:2)

我终于明白了,我在标题名称中错过了一个':':

DWORD ProcessHeader(HTTP_FILTER_CONTEXT *con, HTTP_FILTER_PREPROC_HEADERS *head)
{
    head->SetHeader(con, "test1:", "aaa");
    return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

现在创建一个名为“HTTP_TEST1”的服务器变量。

答案 1 :(得分:1)

似乎是正确的。但是这两种方法都返回BOOL。检查一下,如果他们返回GetLastError(),请致电FALSE
编辑:
我不太确定,但您也可以尝试返回SF_STATUS_REQ_FINISHED而不是SF_STATUS_REQ_NEXT_NOTIFICATION