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

时间: 2024-10-12 12:59:06

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

转:通过代码理解Asp.net4中的几种ClientIDMode设置.

转:http://www.cnblogs.com/xray2005/archive/2011/07/05/2097881.html 以前我们可以通过ClientID在JavaScript脚本中服务器端控件.比如: document.getElementById("<%=控件.ClientID %>"); 这种方式不方便,而且如果在有数据绑定的控件中嵌套着子控件,则访问更不太方便了. 现在,在Asp.Net4中,对于控件增加了一种新的属性,名为ClientIDMode.通过设

asp.net中使用基于角色role的Forms验证

http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统web.config system.web> <authentication mode="Forms" >  <forms name=".yaoCookies" loginUrl="/duan/Manage/login.aspx&quo

转载 ASP.NET中如何取得Request URL的各个部分

转载原地址 http://blog.miniasp.com/post/2008/02/10/How-Do-I-Get-Paths-and-URL-fragments-from-the-HttpRequest-object.aspx 網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc Request.ApplicationPath / Request.PhysicalPath D:\Projects\Solution\web\

ASP.NET中获取登录用户ID 用户身份验证(转载)

如果VS2005及VS2008中使用菜单[网站]-[ASP.NET配置]进入使用网站管理工具(WAT)的表单验证(Forms验证)方式来建立网站数据库,默认数据库名为ASPNETDB.MDF.系统将会自动建立一套系统数据表(VS2008中为11个这样的数据表),利用这个系统数据表可以快捷地进行创建新用户.角色.用户登录.修改用户口令等开发. 在后续开发过程中,需要反复使用用户ID.判断用户是否为登录用户或者是否为某一角色,这些常用操作如下: 1.获取当前登录用户ID Membership.Get

ASP.NET中的Cookie对象

1.Cookie对象 Cookie对象一般用于在客户端保存一些针对某个用户的信息. Cookie本质上只是一小段文本字符串,改字符串一般保存在用户计算机特定文件夹下的某个文件中,每个Cookie都保存到一个对应的文件中.它提供了在客户端存储用户特定信息的手段.例如保存用户登录某个网站的用户名.保存用户购物时选择的某些选项.保存是否已经投票以防止重复投票等. 当用户访问某个服务器时,如果服务器要求将Cookie信息也传递过来,则浏览器就会将其附加到HTTP头文件中发送给服务器.另外,服务器也可以通

ASP.NET中的Request、Response、Server对象

Request对象 Response.Write(Request.ApplicationPath) //应用根路径Request.AppRelativeCurrentExecutionFilePath //当前执行请求相对于应用根目录的虚拟路径,以-开头Request.PhysicalApplicationPath //当前应用的物理路径,如 D:\TEST\WEBRequest.PhysicalPath //当前请求的物理路径,如 D:\TEST\WEB\a.aspxRequest.RawUr

译:在ASP.NET中如何对cookies进行加密和解密

译文地址:http://www.codeproject.com/Tips/872826/Encrypt-Decrypt-Cookies-in-ASP-NET 源代码:http://files.cnblogs.com/files/yplong/ShanuBasicCSharpOOPConceptV1.4.zip 简介: 在这个话题中,我将说明如何加密和解密cookies的值.cookies是一个在浏览器端存储值的text文件.作为cookies存储在一个简单的text文件中,很容易被读取和修改co

ASP.NET 登录中Cookies和验证和前端Jquery

1.登陆中的验证问题 登录中用户名和密码的判断,一是怎么判断,需要调用业务逻辑层的判断方法,这里是单独拿出一个层Controls来进行授权和登录的验证.那怎么进行验证结果的返回,正确进入下个页面错误返回登录页面,首先想到的放法写一个bool的方法,正确进入下一个页面,错误返回登录页面.这里用的一个比较专业的方法是在Controls设置一个数据返回接口类DataResult.cs里面定义好code,Message,Data分别用于进行登录验证,错误信息返回,数据返回(这里暂时用不到)至于为什么这样

Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由

以前在做asp的时候,要把 /default.asp?id=123映射成/default/123,需要借助IISRewriter这个组件,到了asp.net以后,可以用代码写了,但是个人觉得很麻烦,要写一堆代码,还要修改web.config,现在好了:asp.net4.0中 asp.net mvc中的路由规则全部可以用于webform了 使用步骤: 1.Global.ascx.cs中先注册路由规则 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19