Asp.net c++;,传递参数的语法 此代码片段是用托管C++编写的一个ISAPI重定向过滤器的一部分,它将用前缀捕获URL请求。一旦捕获了URL,它将将这些请求重定向到我在Web应用程序的根上的Test.ASPX文件。

Asp.net c++;,传递参数的语法 此代码片段是用托管C++编写的一个ISAPI重定向过滤器的一部分,它将用前缀捕获URL请求。一旦捕获了URL,它将将这些请求重定向到我在Web应用程序的根上的Test.ASPX文件。,asp.net,c++,isapi,Asp.net,C++,Isapi,我需要一些语法帮助来帮助如何: 1) 传递要在我的“test.aspx”页面中显示的“urlString”参数。问题行: Replace(urlString,“/test.aspx?urlString”) 2) “我的aspx”页面显示URL字符串的语法 DWORD CRedirectorFilter::OnPreprocHeaders(CHttpFilterContext* pCtxt, PHTTP_FILTER_PREPROC_HEADERS pHeaderIn

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

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

2) “我的aspx”页面显示URL字符串的语法

   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>
DWORD CRedirectorFilter::onprepochreaders(CHttpFilterContext*pCtxt,
PHTTP_过滤器_预加工_标题(信息)
{
字符缓冲区[256];
DWORD buffSize=sizeof(缓冲区);
BOOL bHeader=pheadernfo->GetHeader(pCtxt->m_pFC,“url”、缓冲区和buffSize);
CString-urlString(缓冲区);
urlString.MakeLower();//用于此练习
if(urlString.Find(“/test/”)=-1)//插入url条件
{
Replace(urlString,“/test.aspx?urlString”);
char*newUrlString=urlString.GetBuffer(urlString.GetLength());
pHeaderInfo->SetHeader(pCtxt->m_pFC,“url”,newUrlString);
返回SF_状态_请求_处理的_通知;
}
//我们不想管它,让IIS来处理它
返回SF_状态_请求_下一个_通知;
}
--------------aspx页
您的问题系列

urlString.Replace(urlString, "/test.aspx?urlString");
正在尝试用“/test.aspx?urlString”替换整个urlString

为了实现这一点,你就不能用下面的方法来代替它吗

urlString = "/test.aspx?urlString";

根据您在其他答案中的评论,听起来您希望:

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

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

现在,您的代码将用“/test.aspx?urlString”替换“anystring”

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

CString newurl = "/text.aspx?urlString=";
newurl += urlString; 
这将构成url“/test.aspx?urlString=”:一个GET请求,其中包含一个名为“urlString”的变量,该变量包含原始url


你的ASP应该用<代码>请求.QueReSt[[ URLStRe] ] /<代码>读取GET URLStand变量,否则看起来就很好。但是我不太喜欢这个。

这看起来不像是我所熟悉的任何管理C++语言……这只是C++,对吗?我只是测试了它,然后用我的.ASPX页面(VB)使用下面的代码。要显示url,请执行以下操作:response.write(request.querystring(“UrlString”))。运气不好,这是否正确?您预期的结果是什么,实际得到的结果是什么?我想在.aspx页面上显示url,但我的方法显然不正确。我只是得到了一个空白屏幕。我也尝试过,将url设置为String=request.querystring(“UrlString”)response.write(url)谢谢,但此方法没有将重定向应用到我的test.aspx页面。这起作用,后面跟着一行代码。urlString.Replace(urlString,newurl);