Кто-нибудь получил HttpBrowserCapabilities, работающий в asp.net - PullRequest
1 голос
/ 18 июня 2010

HttpBrowserCapabilities browse = Request.Browser; просто возвращает IE или Netscape для всех других браузеров.

Я обновил файл C: \ WINDOWS \ system32 \ inetsrv browscap.ini на компьютере разработчика с asp.net c #.

Мое требование - перехватить браузер клиентов в коде на стороне сервера.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 25 июня 2010

Это версия 1.1 для Dot.net

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

Вы должны скопировать его в соответствующую область в вашем файле web.config.

2 голосов
/ 18 июня 2010

http://owenbrady.net/browsercaps/ Это XML-файл, который вы добавляете в ваш web.config, который предоставляет подробную информацию обратно в структуру browsercapabilities. Это должно сделать то, что вы ищете.

Редактировать: я проверял это только на IIS7 и Asp.Net 3.5.

1 голос
/ 15 сентября 2011

Используя .Net 3.5, у меня есть HttpBrowserCapabilities, работающий с закомментированным разделом browsercaps web.config. Вот что я проверял в IE 8, Firefox, Chrome и Safari на одной машине.

        System.Web.HttpBrowserCapabilities browser = Request.Browser;

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

Мои требования к обнаружению браузера аналогичны, но мы вообще не хотим использовать браузерные колпачки. Если вы намереваетесь использовать браузерные колпачки, вы также можете написать регулярные выражения для идентификации браузеров, что было нашей первой опцией, которую я ненавидел.

Три свойства, которые я все еще исследую, - это IsMobileDevice, MobileDeviceManufacturer и MobileDeviceModel. Если я знаю эти работы, я золотой.

1 голос
/ 19 ноября 2010

Взгляните на папку App_Browsers, вы можете добавить файл .browser, чтобы расширить обнаружение объекта Request.Browser в ASP.net.

Например: для обнаружения BlackBerry вам потребуется следующееправило, например, blackberry.browser, добавленное в папку App_Browsers:

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

Теперь вы можете продолжать добавлять свои собственные навсегда, но был проект от Microsoft, в котором тысячи устройств находятся в их файле: MDBF , но они недавно закрыли этот проект (но последняя версия все еще доступна).Таким образом, альтернатива заключается в том, чтобы включить 51degrees.codeplex.com Это не так просто, как было в MDBF, но нужно выполнить работу.

...