100分问一个突然出现的Cookie问题,关于添加/删除Cookie的。
事情原由是我再写一个Web上的权限管理系统,已经基本完工。系统检测客户端是否已经登录是利用客户端的加密Cookie的内容。
登录是在登录页系统检查用户输入帐户信息以后,把加密的验证内容写入客户端Cookie,然后用Response.Redirect()方法执行重定向到需要登录才能看的页面。
注销是当用户按注销按钮或者Cookie过期后,系统自动把客户端Cookie删除,并且重定向。
大家可以看出来,Cookie内容并不重要,实际上就是Cookie的添加和删除操作。但是问题就是出来了。
首先是登录页,出现的问题是当我输入登录信息,然后单击登录按钮,正常操作应该是联系数据库检查用户登录信息,成功后写入Cookie,然后重定向,我写的代码没有错。但就是不这样操作,页面仅仅是刷新了一次,也不写Cookie,也不执行重定向。
注销也是这个问题,注销按钮连接到一个方法上,用途是把Cookie删除,然后重定向,但是执行以后,我发现Cookie没有被删除掉,也不执行重定向。客户端的Cookie根本没有被删掉。但是也没有任何提示信息。
代码如下
首先是登录
// 执行数据库验证代码略,假设成功
// 加入Cookie的内容略,假设是string str
HttpCookie cookie = new HttpCookie("MyCookie",str);
cookie.Expires = DateTime.Now.AddMinutes(20); // 有效时间20分
Response.Cookies.Add(cookie);
Response.Redirect("..."); // 重定向
然后是删除
Response.Cookies.Remove("MyCookie");
Response.Redirect("....") // 转向
无论是添加Cookie还是移除,都不执行。请问解决方案。