为什么Android设备上的Firefox 44.*中的.Net HttpContext.Current.Request

本文关键字:中的 Net HttpContext Request Current Firefox Android 为什么 | 更新日期: 2023-09-27 18:36:54

为什么Android设备上的Firefox 44.*中.Net HttpContext.Current.Request.Browser.IsMobileDevice为false?

如何在我的.Net应用程序中修复此问题?我尝试在App_Browsers中创建浏览器定义,但不起作用!

用户代理是:浏览器:Firefox,版本:44.0,用户代理:Mozilla/5.0(Android 5.0;Mobile;rv:44.0(Gecko/44.0 Firefox/44.0

*抱歉英语不好

为什么Android设备上的Firefox 44.*中的.Net HttpContext.Current.Request

我公司的另一位开发人员解决了这个问题,他只是在App_Browsers"firefoxnew.brower"文件夹中创建了一个新文件,其中包含以下内容:

<browsers>
    <!--Mozilla/5.0 (Android 5.0; Mobile; rv:44.0) Gecko/44.0 Firefox/44.0-->
    <browser id="FirefoxMobile" parentID="firefox3plus">
        <identification>
            <userAgent match="Mozilla.+'(Android.+Mobile.*')" />
        </identification>
        <capabilities>
            <capability name="isMobileDevice" value="true" />
        </capabilities>
    </browser>
</browsers>

我在旧的.Net版本中遇到了类似的问题-我发现某些"平板电脑"设备正在通过,所以我读取了UserAgent字符串

httpContext.Request.UserAgent != null 
  && (httpContext.Request.UserAgent.ToLowerInvariant().Contains("mobi")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("ereader")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("smartphone")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("iphone")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("ipad")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("ios")
  || httpContext.Request.UserAgent.ToLowerInvariant().Contains("android")

当然,如果你需要服务器端设备检测,如果在客户端进行检测,你会想在navigator.userAgent对象中查找。。。