8

This is the user agent for IE 11 on Windows 8.1 (Preview)

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

I am looking for a .browser file for either the App_Browsers folder in my application or c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers to properly detect IE11.

Since the user agent changed from containing "MSIE" such as this IE10 user agent

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

I have tried about 100 variations with no success.

robertc
  • 74,533
  • 18
  • 193
  • 177
ericdc
  • 11,217
  • 4
  • 26
  • 34
  • 1
    Why do you need a .browser file? Browser sniffing is notorious for breaking things, and .Net is even more notorious for getting browser sniffing badly wrong (it was the whole reason we changed the UA string in Opera when we worked there, as it detected Opera 10 as Opera 1). If you want to use browser sniffing, there is likely another way. – David Storey Jul 19 '13 at 06:52
  • @DavidStorey: One reason might be that .NET determines what works for a client by detecting the browser. When IIS doesn't recognize IE11, it doesn't allow Session Cookies for one. – Stefan Bergfeldt Jun 10 '14 at 07:41

3 Answers3

7

I created a file containing

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

and it worked for me. Based on answer by Sistemas-infoe on this question: doPostback failing in IE 11+ Windows 8.1

Community
  • 1
  • 1
tie
  • 543
  • 6
  • 14
1

.NET Framework 4.5.1 update adds new browser definition files: http://www.microsoft.com/en-us/download/details.aspx?id=40773

arni
  • 2,152
  • 19
  • 14
0

I am finding the same problem with IE11 on IIS.

There was an official MS patch for IE10, but, they seem to have only fixed it for that explicit version, rather than for future (and, kind of expected) revisions of the browser.

Scott Hanselman provided a local project for IE10, and perhaps he will update it for IE11.

Here is a link to the patch for IE10 in .NET/IIS

The NuGet package for IE 10

Regarding the comment about not needing to use the .browsers file, I totally agree, however, this issue is (I believe) an issue with IIS/.NET 4

Cheers

Andy

NREZ
  • 942
  • 9
  • 13
Andy N
  • 11
  • 1