HttpBrowserCapabilities缺少一些信息?

Car*_*lis 1 .net c# asp.net user-agent httpbrowsercapabilities

我想使用Request.Browser属性(HttpBrowserCapabilities类)来确定客户端系统的一些属性.

但是我似乎遇到了这个类的一些限制.我找不到一些应该相对容易从UserAgent字符串中解析的属性,比如操作系统版本(Platform对于大多数Windows版本只会返回WinNT,但不会返回Vista,XP等),或者它是否为x64(仅限Win16Win32属性).

我原本希望在HttpBrowserCapabilities类中看到这些属性,因为大多数其他用户代理信息都在那里.我错过了什么吗?我可以在其他地方找到这些信息吗?或者我应该自己从UserAgent字符串解析它?

Ric*_*ing 7

所述的browserCaps元件在ASP.NET 2.0以及更高弃用.除非您使用的是.NET 1或1.1,否则应使用浏览器定义文件.

将*App_Browsers*文件夹添加到您的站点(如果它尚不存在),并创建一个名为" Platforms.browser " 的新文件.(名称无关紧要;只有扩展名.)

打开新的.browser文件并粘贴以下内容:

<browsers>
    <gateway id="PlatformWinVista" parentID="PlatformWinnt">
        <identification>
            <userAgent match="Windows NT 6\.0" />
        </identification>
        <capabilities>
            <capability name="platform" value="Windows Vista" />
        </capabilities>
    </gateway>

    <gateway id="PlatformWin7" parentID="PlatformWinnt">
        <identification>
            <userAgent match="Windows NT 6\.1" />
        </identification>
        <capabilities>
            <capability name="platform" value="Windows 7" />
        </capabilities>
    </gateway>
</browsers>
Run Code Online (Sandbox Code Playgroud)

您可能需要触发网站的重新编译才能使新文件生效.

注意:这些节点必须是网关节点而不是浏览器节点.如果您尝试将它们创建为浏览器节点,则在您的站点重新编译时会出现解析器错误.