ASP.NET4中不要相信Request.Browser.Cookies,Form验证要用UseCookies

从ASP.NET 3.5升级至ASP.NET4之后,遇到三种登录后不能保存cookie的情况(升级前一切正常):

1. 遨游3在极速模式下(默认模式)。

2. FireFox中修改了UserAgent。

3. 诺基亚手机自带浏览器或者UCWeb浏览器访问博客园手机版(m.cnblogs.com)。

今天终于把罪魁祸首给揪出来了,它就是Request.Browser.Cookies。

如果你在程序中使用Form验证并使用cookie保存用户的登录状态,请切记:在<authentication mode="Forms">/<forms>中要加上cookieless="UseCookies"。如果不这样设置的话,cookieless会使用默认值UseDeviceProfile。用了UseDeviceProfile,悲剧就发生了,ASP.NET会根据Request.Browser.Cookies来判断当前浏览器是否支持Cookie

原文:http://www.cnblogs.com/dudu/archive/2011/03/06/asp_net_4_browser_cookie.html