Skip to main content

Forms Authentication Doesn't Work In IE11 But Does In Older Versions

IE11 for Windows 7 was released today. And much like when IE10 came out, Forms Authentication has stopped working for me after updating.

Using the dev tools to switch the document mode to IE10 or lower didn’t help, but switching the user agent string did.

IE11 devtools
IE11 devtools

This is because IE11’s user agent string no longer identifies itself as Internet Explorer and ASP.NET sniffs the user agent string to determine what JavaScript to render, or in this case how to handle cookies.

The default value for IE11 on Windows 7 is

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

While the value used for IE10 is

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

Microsoft previously released an update that patches the browser definition files in %windir%\Microsoft.NET\Framework\v4.0.30319\Config\Browsers so they’ll correctly detect IE11, and all of our machines were up to date. Or so I thought.

Managed Hosting Isn’t Always Hands Off

It turns out one of our servers was setup to use the hosting provider’s internal WSUS server, while the rest of them were using the default Windows Update servers. For some reason this update, along with about 45 others that were also needed, have yet to be approved by our hosting provider which left this machine severely outdated without us realizing it.

The update in question is KB2836939, and requires a reboot. You may also need one or more of the updates listed in this post that explains IE’s new user agent string a bit more.

Lessons Learned

  1. Make sure all of your servers are using the same Windows Update feed
  2. Managed hosting isn’t always hands off like they advertise
  3. Bring snacks when installing 101 updates, it took 2 hours and 45 minutes to fully update this server