2009-08-26 9 views
0

Dieses Codefragment ist in verwaltete C Teil eines isapi umlenken Filter ++ geschrieben, die URL-Anforderungen mit dem Präfix erfassen wird "http://test/. Sobald die URL erfaßt wird es für Anforderung an eine test.aspx Datei umleiten i habe an der Wurzel meines Web-appC++, Syntax für Übergabe von Parametern

ich einige Syntax Hilfe benötigen, wie:.

1), um die "urlString" Parameter übergeben, um in meiner "test.aspx" -Seite angezeigt Problem Zeile:. urlString .replace (urlString "/test.aspx?urlString");

2) Syntax für meine aspx Seite urlStr anzuzeigen

ing
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> 
+2

Dies sieht nicht so aus jedem verwalteten C++ Dialekt mit Ich bin vertraut ... Das ist nur C++, nicht wahr? –

Antwort

1

Die CString::Replace Methode nimmt den String-to-be-ersetzt und den String-to-be-Put vor Ort als Argumente. s.Replace("foo", "bar") wird "tadafoo" in "tadabar" umwandeln.

Jetzt wird Ihr Code "anystring" mit "/test.aspx?urlString" ersetzen. Buchstäblich.

Meine Vermutung ist, dass Sie möchten, dass Ihre URL als GET-Argument für die „/text.aspx“ URL angehängt werden, in welchem ​​Fall Sie dies tun können:

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

Dies wird die URL zusammensetzen " /test.aspx?urlString= http://test/somethingelse.html ": Eine GET-Anfrage mit einer Variablen namens" urlString ", die Ihre ursprüngliche URL enthält.

Ihr Asp sollte lesen Sie die Variable GET urlString mit der request.QueryString[ "urlString" ] als read on this website, und sieht ansonsten gut aus, Aber ich bin nicht wirklich in das.

+0

Dies funktionierte, gefolgt von Codezeile unten. urlString.Replace (urlString, neuurl); –

0

Ihr Problem Linie

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

versucht, das gesamte urlString mit "/test.aspx?urlString" zu ersetzen.

Um dies zu erreichen kann man nicht ersetzen es nur mit der folgenden?

urlString = "/test.aspx?urlString"; 
+0

Ich habe es gerade getestet und verwende die folgenden mit meiner .aspx-Seite (vb), um die URL anzuzeigen: response.write (request.querystring ("UrlString")). kein Glück, ist das richtig? –

+0

Welches Ergebnis hast du erwartet und was hast du eigentlich bekommen? –

+0

Ich möchte die URL auf meiner ASPX-Seite anzeigen, aber meine Methode ist offensichtlich falsch b/c Ich bekomme nur einen leeren Bildschirm. auch versucht, dim url als String = Request.QueryString ("UrlString") response.write (url) –

0

Basierend auf Ihre Kommentare in den anderen Antworten, es klingt wie Sie wollen:

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

Danke, aber diese Methode gilt nicht die Umleitung auf meine test.aspx Seite. –

Verwandte Themen