다음을 통해 공유


HttpListenerElement.UnescapeRequestUrl 속성

정의

HttpListener가 변환된 URI 대신 이스케이프되지 않은 원시 URI를 사용할지 여부를 나타내는 값을 가져옵니다.

public:
 property bool UnescapeRequestUrl { bool get(); };
[System.Configuration.ConfigurationProperty("unescapeRequestUrl", DefaultValue=true, IsRequired=false)]
public bool UnescapeRequestUrl { get; }
[<System.Configuration.ConfigurationProperty("unescapeRequestUrl", DefaultValue=true, IsRequired=false)>]
member this.UnescapeRequestUrl : bool
Public ReadOnly Property UnescapeRequestUrl As Boolean

속성 값

HttpListener가 변환된 URI 대신 이스케이프되지 않은 원시 URI를 사용할지 여부를 나타내는 부울 값입니다.

특성

설명

UnescapeRequestUrl 경우 속성 나타냅니다 HttpListener 는 백분율로 인코딩된 값 변환 되 고 다른 정규화 단계에 따라 변환 된 URI 대신 이스케이프 되지 않은 원시 URI를 사용 합니다.

경우는 HttpListener 인스턴스를 통해 요청을 수신 합니다 http.sys 제공한 URI 문자열의 인스턴스를 만들고 서비스를 http.sys,으로 노출를 HttpListenerRequest.Url 속성.

http.sys 서비스는 두 요청 URI 문자열을 노출 합니다.

  • 원시 URI

  • 변환 된 URI

원시 URI가는 System.Uri HTTP 요청의 요청 줄에 제공 합니다.

GET /path/

Host: www.contoso.com

제공 된 URI의 원시 http.sys 위에서 언급 한 요청에 "경로 /"입니다. 이 네트워크를 통해 전송 된 HTTP 동사를 다음 문자열을 나타냅니다.

http.sys 서비스는 HTTP 요청에서에서 제공 하는 URI를 사용 하 여 요청에 제공 된 정보에서 변환된 된 URI를 만듭니다 및 원본 서버에서 요청을 확인 하도록 호스트 헤더를 전달 해야 합니다. 이 등록 된 URI 접두사를 사용 하 여 요청에서 정보를 비교 하 여 이루어집니다. 이 변환 된 URI에 HTTP 서버 SDK 설명서를 참조 합니다 HTTP_COOKED_URL 구조입니다.

등록 된 URI 접두사를 사용 하 여 요청을 비교할 수 있도록 요청에 일부 정규화를 수행 해야 합니다. 변환 된 URI 위의 샘플은 다음과 같을 수 됩니다.

http://www.contoso.com/path/

합니다 http.sys 결합 서비스는 Uri.Host 속성 값과 문자열을 변환된 된 URI를 만드는 요청 줄에 있습니다. 또한 http.sys 하며 System.Uri 클래스는 또한 다음을 수행 합니다.

  • 이스케이프 해제 인코딩된 모든 백분율 값입니다.

  • Utf-16 문자 표현으로 변환 백분율로 인코딩된 비 ASCII 문자입니다. 유니코드 문자 (유니코드 %uXXXX 형식을 사용 하 여 인코딩) 및 u t F-8과 ANSI/DBCS 문자는 사용할 수는 note 합니다.

  • 경로 압축 등의 다른 정규화 단계를 실행합니다.

백분율로 인코딩된 값에 사용 되는 인코딩에 대 한 정보가 요청 없으므로 백분율로 인코딩된 값을 구문 분석 하 여 올바른 인코딩을 결정 못할 수 있습니다.

따라서 http.sys 프로세스를 수정 하는 것에 대 한 두 개의 레지스트리 키를 제공 합니다.

레지스트리 키 기본값 설명
EnableNonUTF8 1 0 이면 http.sys u t F-8로 인코딩된 Url만 허용 합니다.

0이 아닌 경우 http.sys 도 요청에서 ANSI로 인코딩된 또는 DBCS 인코딩된 Url을 허용 합니다.
FavorUTF8 1 0이 아닌 경우 http.sys 디코딩할 URL u t F-8로 먼저 해당 변환에 실패 이며 EnableNonUTF8 0이 아닌 경우 항상 시도 차례로 Http.sys을 ANSI 또는 DBCS 디코딩해야 하는 작업을 하려고 합니다.

0 (그리고 EnableNonUTF8 0이 아닌 경우) http.sys 있는지을 ANSI 또는 DBCS; 디코딩 하려고 성공 하면를 u t F-8로 변환 하려고 합니다.

HttpListener 요청이 수신에서 변환 된 URI를 사용 하 여 http.sys 대 한 입력으로 Url 속성입니다.

Uri에서 문자 및 숫자 이외의 문자를 지원할 필요가 있습니다. 예로 고객에 대 한 고객 정보를 검색 하는 데 사용 되는 다음 URI를 "1/3812" 번호:

http://www.contoso.com/Customer('1%2F3812')/

Uri (%2F)의 백분율로 인코딩된 슬래시를 note 합니다. 이것이 필요 하므로 경우 슬래시 문자 데이터 및 경로 구분 기호가 아니라입니다.

Uri 생성자에 문자열을 전달에 다음 URI를 일으킵니다.

http://www.contoso.com/Customer('1/3812')/

경로를 세그먼트로 분한 다음 요소에 만들어집니다.

Customer('1

3812')

요청을 보낸 사람의 의도 아닙니다.

경우는 UnescapeRequestUrl 속성이 false로 설정 됩니다 때 합니다 HttpListener 요청이 수신 원시 URI를 사용 하 여 변환 된 URI 대신 http.sys 대 한 입력으로 Url 속성입니다.

적용 대상

추가 정보