Con il rilascio di Windows 8.1, sarà rilasciato sul mercato anche IE 11. Questa nuova versione di Internet Explorer presenta diverse novità, che vanno verso la direzione di un supporto più esteso agli standard web. Nell'ottica di migliorare il riconoscimento da parte dei framework che fanno browser detection, Microsoft ha recentemente cambiato lo user agent, che ora assomiglia a quello di FireFox:
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Purtroppo, questo cambio di user agent comporta un differente riconoscimento da parte di ASP.NET del browser, che si traduce nell'impossibilità di far funzionare alcune feature, come quelle legate al JavaScript delle Web Forms, perché il browser non viene riconosciuto come IE.
Il .NET Framework 4.5.1, atteso con Visual Studio 2013 per la data di rilascio di Windows 8.1, include nuove browser definition che riconoscono in maniera diretta IE 11. Essendo una patch sulla versione 4.5, una volta applicata sui server, il browser sarà riconosciuto automaticamente anche dalle applicazioni che dovessero utilizzare la versione 4.
Tuttavia, se state utilizzando una versione precedente o non avete controllo diretto del server, potete creare un nuovo file all'interno della directory App_Browsers, posta sotto la root del sito, con questo contenuto:
<browsers>
<browser id="InternetExplorer" parentID="Mozilla">
<identification>
<userAgent match="Trident/(?'tridentversion'\d+\.\d+); rv:(?'version'\d+\.\d+)" />
</identification>
<capabilities>
<capability name="browser" value="InternetExplorer" />
<capability name="tridentversion" value="${tridentversion}" />
<capability name="version" value="${version}" />
<capability name="type" value="InternetExplorer" />
</capabilities>
</browser>
</browsers>
Questo file è stato ricreato perché ricordi la definizione offerta poi dalla versione 4.5.1.
E' anche possibile registrare globalmente il file, salvandolo all'interno della directory C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers e lanciando da riga di comando aspnet_regiis -i, dopo esserci posizionati nella directory di installazione del .NET Framework.