Scott Hanselman

FormsAuthentication on ASP.NET sites with the Google Chrome Browser on iOS

July 06, 2012 Comment on this post [19] Posted in ASP.NET | ASP.NET MVC | Bugs
Sponsored By

A few people have said that they have noticed problems the new iPhone/iPad Google Chrome apps as well as trouble with applications that use hosted Safari inside of UIWebView (which is what Chrome is) or apps that host a website in PhoneGap. If you're using FormsAuthentication (in WebForms or MVC, doesn't matter) then Google Chrome for iOS might switch FormsAuth to Cookieless mode, which sucks for everyone.

This has been fixed in .NET 4.5 and you won't see this problem if you have .NET 4.5 installed, even if you're running a .NET 4 application. For example, Bing.com is running .NET 4 applications under .NET 4.5 RC and wouldn't see this. If you install 4.5 (now or later) ASP.NET will always assume clients support cookies.

If you want to tell ASP.NET 4.0 or earlier that EVERY browser supports cookies for FormsAuth you can do ONE of these things:

1. Change Generic.Browser for your app (or machine)

Make a file called generic.browser in a folder called App_Browsers and put this in it:

image

<browsers>
<browser refID="GenericDownlevel">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>

2. Force Cookieless=UseCookies in your web.config

Add cookieless="UseCookies" for your forms element in web.config.

<authentication mode="Forms" >
<forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies" />
</authentication>

Hope this helps.

Related Links

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
July 06, 2012 3:40
Thanks.

I was just getting ready to start debugging.
July 06, 2012 4:45
Thanks!! this info helped one of my technical team member.
July 06, 2012 8:27
One of those annoying little things solved! Thanks!
July 06, 2012 10:31
Hi Scott, I got an error on the browser file. I had to put element "browsers" around it.
July 06, 2012 19:51
This is also an issue with iOS PhoneGap apps - this setting fixed it. Perfect timing!
July 07, 2012 12:36
Does Asp.Net 4.5 change the .browser file based cookie feature detecting mechanical or just fix this specific bug? Thanks
July 07, 2012 14:26
4.5 assumes all browsers support Cookies.
July 08, 2012 9:23
This is good news. :)
July 09, 2012 17:52
Is this why some websites in desktop Chrome (on the Mac) don't think I have cookies enabled? For example, Nordstrom.com.
July 12, 2012 17:53
Jinushaun - I'm not sure, but it's very likely that's why, yes.
July 15, 2012 10:45
Had noticed this last week. Had forgot to get around to this. Thanks for info!
August 29, 2012 12:13
I have .NET 4.0 installed and I'm seeing the above behavior for Safari 5.1.7. Making either / both of the changes you recommend makes no difference - the user is still re-directed back to the login screen.

Is there anything else which can be done?
November 01, 2012 23:27
Pete: We added cookieless="UseCookies" to the sessionState tag as well and that seemed to do the trick with Safari on iPads.

Thanks SH for the nuggets of wisdom that help keep things rolling over here!
Rob
November 28, 2012 2:18
Wow, this solved our problem. Our iphone app that uses a UIWebView running on an iPhone using ios 5.1.1 had the issue but the same app running on ios 6.0 device did not. Using solution 2 above fixed it. Funny enough the error did not occur in the ios 5 simulators only on a real device. I did not see the error on my machine as I have .net 4.5 installed, it only showed up on our hosted test site (Rackspace).
December 20, 2012 8:50
Hi,
I am facing same issue on IPAD but scenario is when user clicks on "remember me" user is authenticated and cookie is set.But after few hours only on IPAD cookie expires giving 500 internal server error.I have used Approach 1 and Approach 2 of above mentioned suggestions.
Still no success. What is the root cause of this Issue.
Please can you explain !!
March 04, 2013 22:31
Thank you, you saved me a lot of time!
March 19, 2013 17:41
Thanks Scott, this really saved my day.

Was going crazy, not being able to figure this out.
July 27, 2013 18:06
Thank you!
August 05, 2013 11:53
i tried this but its not working for me. still facing this problem on ipad3. even i tried by adding browser file too. but still doesn't work for me.

Thanks Regards
Parm

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.