如何在服务器端覆盖Request.Browser?

时间:2014-10-28 15:08:18

标签: asp.net

Opera用户代理“Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 38.0.2125.104 Safari / 537.36 OPR / 25.0.1614.63”在服务器端定义为“Chrome”。< / p>

我想覆盖对象Request.Browser的创建,并将文件“opera.browser”添加到文件夹“App_Browsers”中:

<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>

但Regex无法正常工作,而Request.Browser.Browser仍定义为“Chrome”。

2 个答案:

答案 0 :(得分:1)

您可以通过

手动设置用户代理
HttpContext.SetOverriddenBrowser("Some browser");

如果您想清除覆盖,只需执行

HttpContext.ClearOverriddenBrowser();

答案 1 :(得分:0)

您还必须更新chrome.browser(可能还有mozilla.browser)以匹配该正则表达式。