c ++,传递参数的语法

时间:2009-08-26 14:19:13

标签: asp.net c++ isapi

此代码段是用托管c ++编写的isapi重定向过滤器的一部分,该过滤器将捕获前缀为“http://test/的url请求。一旦捕获到url,它会将这些请求重定向到我在的test.aspx文件中我的网络应用程序的根源。

我需要一些语法帮助如何:

1)传递“urlString”参数以显示在我的“test.aspx”页面中。问题线: urlString.Replace(urlString,“/ test.aspx?urlString”);

2)我的aspx页面的语法显示urlString

   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>

3 个答案:

答案 0 :(得分:1)

CString::Replace方法将要替换的字符串和要作为参数的字符串放入。 s.Replace( "foo", "bar" )会将“tadafoo”转换为“tadabar”。

现在你的代码将用“/test.aspx?urlString”替换“anystring”。字面上。

我的猜测是,您希望将您的网址作为GET参数附加到“/text.aspx”网址,在这种情况下,您可以执行此操作:

CString newurl = "/text.aspx?urlString=";
newurl += urlString; 

这将构成网址“/test.aspx?urlString=http://test/somethingelse.html”:一个GET请求,其中包含一个名为“urlString”的变量,其中包含您的原始网址。

你的asp应该读取带有request.QueryString[ "urlString" ]的GET urlString变量为read on this website,否则看起来不错,但我并不是真的。

答案 1 :(得分:0)

你的问题

urlString.Replace(urlString, "/test.aspx?urlString");

正在尝试用“/test.aspx?urlString”替换整个urlString。

要实现这一点,您不能只用以下内容替换它吗?

urlString = "/test.aspx?urlString";

答案 2 :(得分:0)

根据您在其他答案中的评论,听起来像是您想要的:

CString newurl = "/test.aspx?UrlString=";
newurl += urlString;