2014-10-28 2 views
0

Opera 사용자 에이전트 "Mozilla/5.0 (Windows NT 6.1, WOW64) AppleWebKit/537.36 (Gecko와 같은 KHTML) Chrome/38.0.2125.104 Safari/537.36 OPR/25.0.1614.63"은 서버 측에서 "Chrome"으로 정의되었습니다. 서버 측에서 Request.Browser를 재정의하는 방법은 무엇입니까?

나는 물체하여 Request.Browser의 생성을 무시하고 싶었 "App_Browsers"폴더에 파일 "opera.browser"를 추가 :

<browsers> 
    <browser id="Opera" parentID="Chrome"> 
     <identification> 
     <userAgent match="OPR/(?'version'(?'major'\d+)(\.(?'minor'\d+)?)\w*)" /> 
     </identification> 

     <capabilities> 
     <capability name="browser" value="Opera" /> 
     <capability name="majorversion" value="${major}" /> 
     <capability name="minorversion" value="${minor}" /> 
     <capability name="type" value="Opera${major}" /> 
     <capability name="version" value="${version}" /> 
     </capabilities> 
    </browser> 
</browsers> 

그러나 정규식이 작동하지 및 Request.Browser.Browser 여전히 정의 "크롬".

+0

나는 이것을 시도했다. 제대로 작동하고있다. 브라우저에서 요청할 때, 사용자 에이전트를 스푸핑해야한다. –

+0

오페라에서 크롬으로 사용자 에이전트를 전환하려고 시도하는 경우 이상하게 작동합니다. Request.Browser 객체는 두 브라우저 모두에 캐시됩니다. –

답변

1

당신은

HttpContext.SetOverriddenBrowser("Some browser"); 

수동으로 사용자 에이전트를 설정하고 재정을 취소 할 경우 단순히 당신은 또한 chrome.browser (그리고 아마도 모질라를 업데이트해야

HttpContext.ClearOverriddenBrowser(); 
0

을 할 수 있습니다. 브라우저) 그 정규식과 일치하지 않습니다.

관련 문제