HttpListenerElement.UnescapeRequestUrl 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 속성입니다.
적용 대상
추가 정보
.NET