0

IE7 이하의 사용자는 오류 페이지로 리디렉션되는 ASP.NET MVC 사이트를 지원합니다.ASP.NET에서 IE10 이상 감지

if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion <= 7) 
{ 
    return RedirectToAction("Browser","Error"); 
} 

IE10 이하를 사용하는 경우 사용자를 오류 페이지로 리디렉션하도록 변경해야합니다. 나는 IE8을 탐지하기 위해 MajorVersion을 8로 간단히 체크 할 필요가 있지만 IE9와 IE10을 탐지하기 위해 Request.Browser를 사용하는 것에 대한 문서를 찾을 수 없었다는 것을 알고있다.

아마도 MajorVersion이 10보다 작거나 같은지 확인하는 것으로 충분합니다. 그러나 IE11에 대해서는 Request.Browser.Browser가 "InternetExplorer"가 아닌 "InternetExplorer"를 반환하고 IE9 및 10이 브라우저에 반환하는 것에 대한 최종 답을 찾을 수 없었습니다. 또한 IE가 제공하는 신뢰 문제로 인해 IE9와 10이 MajorVersion을 9와 10으로 가정한다고 생각하지 않습니다. 누구나 IE9와 10에 대해 Request.Browser.Browser 및 Request.MajorVersion이 포함 할 것을 확실히 알고 있습니까?

답변

0

IE 11이 이전 버전을 에뮬레이트하도록 말할 때 IE 11이 사용하는 IE 9 사용자 에이전트 문자열과 10 사용자 에이전트 문자열의 경우 각각 Request.Browser.Browser이 "IE"이고 Request.Browser.MajorVersion이 9 및 10임을 확인할 수 있습니다. 그것이 포괄적이든 아니든, 나는 잘 모르며, 물론 사용자 에이전트 스트링은 쉽게 조작 할 수 있기 때문에 본질적으로 신뢰할 수 없습니다.

0

Request.Browser 정보는 [Framework root \ Config \ Browsers]의 브라우저 파일에 있습니다. 그들은 구식입니다. this link을 기반으로 UA 문자열을 구문 분석합니다.