QueryString을 통해 C# .Net 웹 응용 프로그램에 Base64 문자열을 전달하려고합니다. 문자열이 도착하면 "+"(더하기) 기호가 공백으로 바뀝니다. 자동 URLDecode 프로세스가이를 수행하는 것 같습니다. 나는 QueryString을 통해 전달되는 것을 제어하지 못한다. 이 서버 측을 처리 할 방법이 있습니까?QueryString이 URLDecode 뒤에 변형되었습니다.
예 :
http://localhost:3399/Base64.aspx?VLTrap=VkxUcmFwIHNldCB0byAiRkRTQT8+PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
는 생산 :
VkxUcmFwIHNldCB0byAiRkRTQT8 PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
사람들은 쿼리 문자열에는 urlencoding 제안 : 내가 할 수없는
System.Web.HttpUtility.UrlEncode(yourString)
을 그 나는 호출을 통제 할 수 없기 때문에 루틴 (다른 언어와 잘 작동 함).
또한 더하기 기호와 공백을 대체하는 제안이 있었다 :이의하지만했다
Request.QueryString["VLTrap"].Replace(" ", "+");
하지만 내 우려, 나는이 시작 언급한다, 내가 없다는 것입니다 다른 문자는 더하기 기호 이외에 형식이 잘못되었을 수 있습니다.
내 주요 목표는 QueryString을 가로 채기 전에 디코더를 통해 실행하는 것입니다.
이렇게하려면 Request.QueryString.toString()을 살펴 보았습니다.하지만 여기에는 잘못된 형식의 정보가 포함되어 있습니다. 어떤 방법으로 원시 QueryString 을보기 전에 URLDecoded입니까? 더 나아가 닷넷은 모든 인코딩 된 URL을이기 위하여 QuerString에서 들어오는 것으로 예상하지만, 브라우저가 자동으로 URL 인코딩 GET 요청을하지 않는 것 같습니다 테스트 후
.
OK :
이 블로그 게시물을 참조하십시오.질문은 명시 적으로 QueryString으로 전달되는 것을 변경할 방법이 없다고 명시하지만 모든 정답 (즉, base64 디코딩 전에 더하기로 공간을 바꿉니다)이 선정되었습니다. 그림 이동 ... – Alexander