DotNet Postbacks Not Working in IE11

Many people are posting the woes of DotNet Postbacks not working in IE11.  I too experienced this and remembered that there were app_browser files that could be modified to give the browser further instructions.  With a quick google search I was able to find the exact solution that I was looking for.  I cannot take credit for it so I will share the original URL from which I got my answer. [ Answer ]

However Here is the code so you do not have to click on the link above:

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

How to change IE11 Useragent

I recently tripped on a need to change the Useragent string for IE11 because of an older DotNet control that I was using and was no longer in development. Again this is not my solution, but it worked for me and I thought I would share it with the world. Since it is not my solution, here is the original link [ Answer ]

 <rewrite>  
 <rules>  
 <rule name="Change IE 11 User Agent to IE 10" enabled="true">  
  <match url="(.*)" />  
  <action type="None" />  
  <conditions>  
   <add input="{HTTP_USER_AGENT}" pattern=".trident\/[789]" />  
  </conditions>  
  <serverVariables>  
   <set name="HTTP_USER_AGENT" value="Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.2; Trident/7.0)" />  
  </serverVariables>  
  </rule>  
  </rules>  
 </rewrite>  

To make this work, you need to add the variable “HTTP_USER_AGENT” to the rewrite module in IIS.  If you do not, you will be told to by the error returned in IIS.  For instructions for adding the variable click the following:  [ link ]

IE11 Thinking it is a Cookieless Browser

Recently I had an issue where IE11 did not want to track cookies turning IE11 into a Cookieless Browser.  I learned quickly this is the default behaviour of the browser unless you uncheck a no-tracking option during its setup.  You know that you have an issue when you have a url that has hash like injection in it after a user signs in.  Since you cannot force your users to turn off the no-tracking option, here is a way I got around it for sites with logins.

In the code below, the key is cookieless=”UseCookies”

 <authentication mode="Forms">  
  <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />  
 </authentication>