none
App_Browsers文件夹内定义的*.browser如何覆盖系统内MS.NET\Config\Browsers里面的配置的啊? RRS feed

  • 问题

  • msdn论坛编辑器功能终于恢复了。现在补上问题描述~~

    我目前在做一个浏览器适配的功能可以根据UA去跳转到【移动端|Pad端|PC端】这3个页面!

    但是现在通过如下代码检查发现一直都在匹配C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers\下的文件内容。而没有匹配MyWebApp目录下的App_Browsers内容!

        <pre>
    <%= Request.UserAgent %>
    
            Request.Browser.Browser: <%= Request.Browser.Browser %>
            Request.Browser.IsMobileDevice: <%= Request.Browser.IsMobileDevice %>
            Request.Browser.MobileDeviceModel: <%= Request.Browser.MobileDeviceModel %>
            Request.Browser.MobileDeviceManufacturer: <%= Request.Browser.MobileDeviceManufacturer %>
            Request.Browser.Platform: <%= Request.Browser.Platform %>
            Request.Browser.EcmaScriptVersion: <%= Request.Browser.EcmaScriptVersion %>
            Request.Browser.Id: <%= Request.Browser.Id %>
            Request.Browser.Type: <%= Request.Browser.Type %>
            Request.Browser["layoutEngine"]: <%= Request.Browser["layoutEngine"] %>
            Request.Browser["myAttr"]: <%= Request.Browser["myAttr"] %>
            HttpRuntime.CodegenDir: <%= HttpRuntime.CodegenDir %>
            <%
                Response.Write("\r\n");
                foreach (var bitem in Request.Browser.Browsers)
                {
                    Response.Write(bitem);
                    Response.Write("\r\n");
                }
             %>
        </pre>

    页面一直显示

    <pre>
    Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0
    
            Request.Browser.Browser: Mozilla
            Request.Browser.IsMobileDevice: True
            Request.Browser.MobileDeviceModel: Linux
            Request.Browser.MobileDeviceManufacturer: Unknown
            Request.Browser.Platform: Unknown
            Request.Browser.EcmaScriptVersion: 3.0
            Request.Browser.Id: webkit
            Request.Browser.Type: Mozilla
            Request.Browser["layoutEngine"]: WebKit
            Request.Browser["myAttr"]: 
            HttpRuntime.CodegenDir: C:\Users\##\AppData\Local\Temp\Temporary ASP.NET Files\root\9af2da08\d69a6311
            
    default
    mozilla
    webkit
    </pre>

    从最后几行 default -> mozilla -> webkit 根本就没有匹配我自定义的XiaoMi

    XiaoMi.browser

    <!--
    可在 <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers 中找到现有的浏览器定义
    -->
    <browsers>
        <browser id="XiaoMi" parentID="Mozilla">
            <identification>
              <!--Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0-->
                <userAgent match="XiaoMi" />
            </identification>
    
            <capabilities>
                <capability name="browser" value="My New Browser" />
              <capability name="myAttr" value="s999" />
            </capabilities>
        </browser>
    
        <browser refID="Mozilla">
            <capabilities>
                <capability name="xml" value="true" />
            </capabilities>
        </browser>
    </browsers>

    UA头= Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0

    请问一下我改如何使用断点调试这一块内容?还是说我自己实现一个UA浏览器判断的功能算了,不使用ASP.NET自带的机制(就目前的情况而言很难掌控一切)?


    博客园: dotNetDR_ 的博客 - 天杀下来的BUG,不怕有我来挡!

    博客园介绍: 博客园创立于2004年1月,是面向软件开发者的高品质IT技术社区,聚集了很多优秀的软件开发者和IT技术学习者。


    • 已编辑 dotNetDR_ 2013年4月23日 11:26 添加问题内容
    2013年4月23日 10:22