2009-08-26 6 views
0

이 코드 조각은 관리되는 C++로 작성된 isapi 리디렉션 필터의 일부로 접두사가 "http://test/"인 URL 요청을 캡처합니다. URL을 캡처하면 요청을 test.aspx 파일로 리디렉션합니다. i 내 웹 응용 프로그램의 루트에있는C++, 매개 변수 전달 구문

을 I가 어떻게 어떤 구문의 도움이 필요합니다..

1) 내 "에서 Test.aspx"페이지 문제 행에 표시되는 "URLString는"매개 변수를 전달을 : URLString는을 .wind (urlString, "/test.aspx?urlString");

2) urlStr을 표시 할 aspx 페이지의 구문

urlString.Replace(urlString, "/test.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> 
+2

이것은 내가 익숙한 관리되는 C++ 방언처럼 보이지 않습니다 ... 이것은 단지 C++입니다. –

답변

1

CString::Replace 방법은 투 - 대체 문자열 및 문자열 - 투 - 수 - 넣어합니다 : 다른 답변에 귀하의 의견을 바탕으로

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

이 작업 한 후 아래 코드 줄을 입력하십시오. urlString.Replace (urlString, newurl); –

0

귀하의 문제 라인을 보내고은 "/test.aspx?urlString"로 전체 URLString는 교체하려고합니다.

이것을 달성하려면 다음과 같이 바꿀 수 없습니까?

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

난 그냥 그것을 테스트하고 url : response.write (request.querystring ("UrlString")) 표시하려면 내 .aspx 페이지 (VB) 함께 다음 사용하고 있습니다. 행운,이게 맞습니까? –

+0

어떤 결과가 있었습니까? 실제로 얻은 결과는 무엇입니까? –

+0

나는 .aspx 페이지에 URL을 표시하려고하지만 내 방법은 분명히 틀립니다. b/c 나는 빈 화면을 얻고 있습니다. 또한 시도, dim url as String = Request.QueryString ("UrlString") response.write (url) –

0

, 당신이 원하는 같은 소리 인자로 - in - place. s.Replace("foo", "bar")은 "tadafoo"를 "tadabar"로 변환합니다.

이제 코드가 "anystring"을 "/test.aspx?urlString"으로 바꿉니다. 말 그대로.

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

이 URL을 "구성됩니다

내 생각 엔 당신이 당신의 URL이이 작업을 수행 할 수있는 경우에 GET 인수로"/text.aspx "URL,에 추가 할 것입니다 /test.aspx?urlString=http://test/somethingelse.html ": 원래 url을 포함하는"urlString "이라는 변수가있는 GET 요청.

귀하의 asp는 request.QueryString[ "urlString" ] 인 GET urlString 변수를 읽고 read on this website이되어야하며, 그렇지 않으면 잘 보입니다. 그러나 저는 그것에 정말로 관심이 없습니다.

+0

감사하지만이 방법은 내 test.aspx 페이지로 리디렉션을 적용하지 않습니다. –