2010-02-24 7 views
2

현재 우리는 asp.net 응용 프로그램에서 query-string을 광범위하게 사용하고 있습니다. 며칠 전 우리는 웹 사이트를 개선하기 위해 노력하고있었습니다. 이것에서 우리는 처음에 주소 표시 줄에 웹 페이지의 전체 URL을 표시하지 않기로 결정했습니다. this question regarding it on SOserver.transfer와 함께 query-sting을 사용하는 방법은 무엇입니까?

가장 좋은 방법은 server.transfer()를 사용하는 것이 었습니다. 하지만 이제는 쿼리 문자열이 작동하지 않는 것 같습니다! 이 문제를 해결할 수있는 방법이있어서 검색어 문자열을 사용할 수 있으며 검색 주소창에 웹 페이지의 URL을 표시하지 마십시오. 안내해주십시오.

미리 감사드립니다.

답변

2

Server.Transfer는 any existing querystring or form collections을 통해 호출 된 처리기로 전달되어야합니다.

전송 방법은 QueryString 및 Form 컬렉션을 유지합니다.

Server.Transfer(path, preserveForm)으로 전화하는 경우 두 번째 매개 변수를 true으로 설정하십시오.

그러나 찾은 것처럼 Server.Transfer 메서드를 호출 할 때 쿼리 문자열이 포함 된 URL의 경로를 설정할 수 없습니다.

도이 길을가는 다음과 같은 잠재적 인 문제를 참고 :

    ASP.NET은 사용자가이 리소스에 액세스 할 수 있어야합니다 것을 확인하지 않습니다
  1. - 귀하의 사이트에 표준 인증 메커니즘을 사용하는 경우 있도록 , 당신은 그들에게 더 이상 의존 할 수 없을 것입니다.
  2. 사용자는 귀하의 사이트에서 홈페이지를 넘는 페이지를 북마크하거나 사이트로 사람 링크/딥 링크를 보낼 수 없습니다.
  3. 검색 엔진은 귀하의 사이트에 대한 결과를 색인 생성/검색하는 데 어려움을 겪습니다.
+0

최대한 빨리 확인하고 최대한 빨리 되돌립니다. – HotTester

0

왜 쿼리 스팅을 숨기시겠습니까? 거기에 개인적인 정보가 있다면 그게 내가 세션에서 그것을 저장하는 것이 좋습니다 것이 그 경우.

+0

쿼리 문자열과 관련하여 로직 및 코드가 많이 작성되었습니다 ... 세션으로 완전히 변경하면 많은 시간이 소요됩니다. 최대한 빨리 구현할 수있는 옵션을 모색 중입니다. – HotTester

0

PreservForm과 함께 전송 방법을 사용하는 경우 viewstate 유효성 검사에 문제가있을 수 있습니다. 한 페이지의 포스트 백 데이터가 다른 페이지의 예상 된 포스트 백 데이터와 일치하지 않을 수 있습니다.

관련 문제