[ISAPI Filter]得到用户 POST 的信息(100分)

  • 主题发起人 主题发起人 Wilbur
  • 开始时间 开始时间
W

Wilbur

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在 ISAPI Filter 中得到用户 POST 的信息(如用户在 form 中填写的信息), 我使用下面的代码(注意 GetServerVariable)

DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT* pfc,
DWORD NotificationType,
VOID* pvData)
{
switch(NotificationType) {
case SF_NOTIFY_READ_RAW_DATA:
DebugOut("/nOnReadRawData/n");
OnReadRawData(pfc, pvData);
break;
default:
break;
}
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

void OnReadRawData(HTTP_FILTER_CONTEXT* pfc, VOID* pvData)
{
PHTTP_FILTER_RAW_DATA pRawData = (PHTTP_FILTER_RAW_DATA)pvData;
char* pchIn = (char* )pRawData->pvInData;
int size = pRawData->cbInData;
char pVariable[1024];
unsigned long dwSize = 1023;

pfc->GetServerVariable(pfc, "REQUEST_METHOD", pVariable, &dwSize); // ???
if(dwSize > 1) {
DebugOut("REQUEST_METHOD: %s, size: %d/n", pVariable, dwSize);
if(strncmp(pVariable, "POST", dwSize) == 0) {
DebugOut("POST/n");
}
return;
}
else {
return;
}
}

但是, 调试中发现 dwSize = 1, pVariable = NULL.
请大侠不吝赐教.

 
不用这么复杂吧
当窗口方法是post时,请求信息在request.contentfields中返回
 
我这里是 isapi filter, 不是 isapi extention.
不过现在问题已经解决了.
 
多人接受答案了。
 
后退
顶部