このコードスニペットは、マネージC ++で記述されたisapiリダイレクトフィルターの一部であり、プレフィックスが「http:// test / 」のURLリクエストをキャプチャします。URLがキャプチャされると、ルートにあるtest.aspxファイルにリクエストがリダイレクトされます。私のウェブアプリの。
次の方法で構文ヘルプが必要です。
1)「test.aspx」ページに表示される「urlString」パラメーターを渡します。問題の行:urlString.Replace(urlString、 "/test.aspx?urlString");
2)urlStringを表示するためのaspxページの構文
DWORD CRedirectorFilter::OnPreprocHeaders(CHttpFilterContext* pCtxt,
PHTTP_FILTER_PREPROC_HEADERS pHeaderInfo)
{
char buffer[256];
DWORD buffSize = sizeof(buffer);
BOOL bHeader = pHeaderInfo->GetHeader(pCtxt->m_pFC, "url", buffer, &buffSize);
CString urlString(buffer);
urlString.MakeLower(); // for this exercise
if(urlString.Find("/test/") != -1) //insert url condition
{
urlString.Replace(urlString, "/test.aspx?urlString");
char * newUrlString= urlString.GetBuffer(urlString.GetLength());
pHeaderInfo->SetHeader(pCtxt->m_pFC, "url", newUrlString);
return SF_STATUS_REQ_HANDLED_NOTIFICATION;
}
//we want to leave this alone and let IIS handle it
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
-------------- aspx page
<html>
<body>
<%
dim url as string = request.querystring("urlString")
response.write(url)
%>
</body>
</html>