2013-07-26 3 views
0

봇이나 사용자가 실수로 비표준 양식을 요청하여 리디렉션해야하기 때문에 ASP.NET 응용 프로그램으로 보낸 요청 URL을 대/소문자로 구분하지 않습니다.URL을 비교하는 방법 대/소문자를 구분하지 않습니까?

어떤 비교 모드가 의미 적으로 최선의 선택입니까?

StringComparison.OrdinalIgnoreCase 
StringComparison.InvariantCultureIgnoreCase 
StringComparison.CurrentCultureIgnoreCase 

Ordinal은 코드 포인트 매칭을하기 때문에 제한적일 수 있습니다. 모든 언어 적 차이를 고려하지 않을 수도 있습니다. CurrentCulture은 URL이 문화권과 관련이 없으므로 URL에 적합하지 않은 것으로 보입니다. InvariantCulture은 지구상에 존재하지 않는 영어와 같은 문화를 대표하기 때문에 완전히 이해가되지 않습니다. 브라우저에서 URL을 사용하는 경우가 아니라 사용자 지향 문자열에 사용하지 않을 것입니다.

어떤 모드가 가장 적합합니까?

답변

1

지적하신 것처럼 완벽한 해결책은 없습니다. 항상 InvariantCulture을 사용했으며 결과에 만족했습니다. 하지만 내 URL은 일반적으로 영어 또는 영어와 비슷하므로 문제가 발생하기가 쉽지 않습니다.

또 다른 가능성은 요청을 가로 채고 HTTP 헤더에서 사용자의 culture를 가져 오는 처리기 나 모듈을 작성하는 것입니다. 그런 다음 문화를 사용하여 변형을 수행 할 수 있습니다. 아마도.

영원히 쓸 수있는 것 중 하나입니다. 방금 InvariantCulture을 선택했는데 문제가 생기면 결정을 다시 검토 할 것이라고 생각했습니다. 지금까지 아무도 눈치 채지 못했습니다. 적어도 아무도 그것에 대해 불평하지 않습니다.

관련 문제