1

HttpBrowserCapabilities 浏览 = Request.Browser; 似乎只是为所有其他浏览器带回了 IE 或 Netscape。

我已经更新了具有 asp.net c# 的开发人员 PC 上的 C:\WINDOWS\system32\inetsrv browscap.ini 文件。

我的要求是在服务器端代码中捕获客户端浏览器。

谢谢。

4

4 回答 4

2

这是 Dot.net 的 1.1 版本

http://owenbrady.net/browsercaps/CodeProject.xml

不过,您必须将其复制到 web.config 中的适当区域。

于 2010-06-24T22:39:31.467 回答
2

http://owenbrady.net/browsercaps/这是您添加到 web.config 中的 xml 文件,该文件将详细信息返回给 browsercapabilities 结构。这应该可以满足您的需求。

编辑:我只在 IIS7 和 Asp.Net 3.5 上测试过这个。

于 2010-06-18T14:40:45.170 回答
1

看看 App_Browsers 文件夹,你可以添加一个 .browser 文件来扩展 ASP.net 中 Request.Browser 对象的检测。

例如:要检测 BlackBerry,您需要将以下规则添加到 App_Browsers 文件夹中,例如 blackberry.browser:

<browsers>    
  <browser id="BlackBerry" parentID="Default">
    <identification>
      <userAgent match="BlackBerry(?'model'\d+)/(?'version'((?'major'\d+).(?'minor'\d+).(?'other'\d+)))" />
    </identification>
    <capabilities>
      <capability name="browser"     value="BlackBerry" />
      <capability name="isMobileDevice"     value="true" />
      <capability name="javascript"     value="true" />
      <capability name="ecmascriptversion"     value="1.3" />
      <capability name="version"     value="${version}" />
      <capability name="majorVersion"     value="${major}" />
      <capability name="minorVersion"     value="${minor}" />
      <capability name="supportsCss"     value="true" />
      <capability name="css1"                            value="true" />
      <capability name="css2"                                    value="true" />
      <capability name="frames"     value="false" />
      <capability name="cookies"     value="true" />
      <capability name="mobileDeviceManufacturer"   value="RIM" />
      <capability name="isColor"                         value="true" />
      <capability name="supportsBold"                    value="true" />
      <capability name="supportsFontName"                value="true" />
      <capability name="supportsImageSubmit"             value="true" />
      <capability name="supportsItalic"                  value="true" />
      <capability name="preferredImageMime"              value="image/jpeg" />
    </capabilities>
  </browser>
</browsers>

现在你可以永远添加你自己的,但是微软有一个项目在他们的文件中有数千台设备:MDBF,但他们最近关闭了这个项目(但最后一个版本仍然可以访问)。所以替代方案是包含51degrees.codeplex.com 它不像 MDBF 那样容易,但应该可以完成工作。

于 2010-11-19T08:46:06.290 回答
1

使用 .Net 3.5,我已经将 HttpBrowserCapabilities 与 web.config 的 browsercaps 部分一起注释掉了。这是我所拥有的,在同一台机器上的 IE 8、Firefox、Chrome 和 Safari 中验证。

        System.Web.HttpBrowserCapabilities browser = Request.Browser;

        BrowserNm.Text = browser.Browser;
        BrowserVer.Text = browser.Version;
        Platform.Text = browser.Platform;

我对浏览器检测的要求类似,但我们根本不想使用 browsercaps。如果您打算使用 browsercaps,您不妨编写正则表达式来识别浏览器,这是我们的第一个选择,我讨厌它。

我仍在调查的三个属性是 IsMobileDevice、MobileDeviceManufacturer 和 MobileDeviceModel。如果我知道这些工作,我就是金子。

于 2011-09-15T18:04:48.410 回答