Файл определения App_Browsers для IE 11

Это пользовательский агент для IE 11 в Windows 8.1 (предварительная версия).

 Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko

Я ищу файл .browser либо для папки App_Browsers в моем приложении, либо для c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers для правильного обнаружения IE11.

Поскольку пользовательский агент изменился с содержания «MSIE», такого как этот пользовательский агент IE10

 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)

Я перепробовал около 100 вариантов, но безрезультатно.


person ericdc    schedule 02.07.2013    source источник
comment
Зачем вам нужен файл .browser? Обнюхивание браузера печально известно тем, что ломает что-то, а .Net еще более печально известен тем, что неправильно обнюхивает браузер (это было единственной причиной, по которой мы изменили строку UA в Opera, когда мы там работали, поскольку она обнаружила Opera 10 как Opera 1). Если вы хотите использовать сниффинг браузера, скорее всего, есть другой способ.   -  person David Storey    schedule 19.07.2013
comment
@DavidStorey: Одна из причин может заключаться в том, что .NET определяет, что работает для клиента, определяя браузер. Когда IIS не распознает IE11, он не разрешает сеансовые файлы cookie для одного.   -  person Stefan Bergfeldt    schedule 10.06.2014


Ответы (3)


Я создал файл, содержащий

<browsers>

    <browser id="IE11" parentID="Mozilla">
        <identification>
            <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
            <userAgent nonMatch="IEMobile" />
        </identification>
        <capture>
            <userAgent match="Trident/(?'layoutVersion'\d+)" />
        </capture>
        <capabilities>
            <capability name="browser" value="IE" />
            <capability name="layoutEngine" value="Trident" />
            <capability name="layoutEngineVersion" value="${layoutVersion}" />
            <capability name="extra" value="${extra}" />
            <capability name="isColor" value="true" />
            <capability name="letters" value="${letters}" />
            <capability name="majorversion" value="${major}" />
            <capability name="minorversion" value="${minor}" />
            <capability name="screenBitDepth" value="8" />
            <capability name="type" value="IE${major}" />
            <capability name="version" value="${version}" />
        </capabilities>
    </browser>

    <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
    <browser id="IE110" parentID="IE11">
        <identification>
            <capability name="majorversion" match="11" />
        </identification>
        <capabilities>
            <capability name="ecmascriptversion" value="3.0" />
            <capability name="jscriptversion" value="5.6" />
            <capability name="javascript" value="true" />
            <capability name="javascriptversion" value="1.5" />
            <capability name="msdomversion" value="${majorversion}.${minorversion}" />
            <capability name="w3cdomversion" value="1.0" />
            <capability name="ExchangeOmaSupported" value="true" />
            <capability name="activexcontrols" value="true" />
            <capability name="backgroundsounds" value="true" />
            <capability name="cookies" value="true" />
            <capability name="frames" value="true" />
            <capability name="javaapplets" value="true" />
            <capability name="supportsCallback" value="true" />
            <capability name="supportsFileUpload" value="true" />
            <capability name="supportsMultilineTextBoxDisplay" value="true" />
            <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
            <capability name="supportsVCard" value="true" />
            <capability name="supportsXmlHttp" value="true" />
            <capability name="tables" value="true" />
            <capability name="supportsAccessKeyAttribute" value="true" />
            <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
            <capability name="vbscript" value="true" />
        </capabilities>
    </browser>

</browsers>

и это сработало для меня. На основе ответа Sistemas-infoe на этот вопрос: сбой в IE 11+ Windows 8.1

person tie    schedule 28.11.2013
comment
измените ‹browser id=IE110 parentID=IE11› на ‹browser id=IE10 parentID=IE11› - person anotherdie; 23.01.2014
comment
Здравствуйте, я вношу эти изменения, они работают на моем локальном компьютере (Windows 7 с IE11), но изменения не отражаются на сервере (Windows Server 2008 R2). - person Shivam Srivastava; 24.01.2014

Обновление .NET Framework 4.5.1 добавляет новые файлы определения браузера: http://www.microsoft.com/en-us/download/details.aspx?id=40773

person arni    schedule 21.11.2013

Я обнаружил ту же проблему с IE11 в IIS.

Был официальный патч MS для IE10, но, похоже, они исправили его только для этой явной версии, а не для будущих (и, как ожидается,) версий браузера.

Скотт Хансельман предоставил локальный проект для IE10 и, возможно, обновит его для IE11.

Вот ссылка на патч для IE10 в .NET/IIS

пакет NuGet для IE 10.

Что касается комментария о том, что не нужно использовать файл .browsers, я полностью согласен, однако эта проблема (я считаю) связана с IIS/.NET 4.

Ваше здоровье

Энди

person Andy N    schedule 02.08.2013
comment
Я думаю, что support.microsoft.com/kb/2836947 — это обновленная версия предыдущего исправления. - person EricLaw; 03.08.2013