js和.net操作Cookie遇到的问题
Cookie初探
1.我理解中的Cookie
1.1.Cookie存储位置是客户端的
1.2.Cookie存储数据,数据大小也是有限制的
2.Cookie的用法
2.1.js对Cookie的操作(网上很多我就不自己总结了)
var date = new Date();
date.setTime(date.getTime() - 10000);//过期时间--这个的作用:添加(过期时间大于当前时间)和删除(过期时间小于当前时间)
document.cookie = name + "=Cookie内容; expires=" + date.toGMTString();
读取Cookie
var l_varCookie=document.cookie;
2.2.C#对Cookie的操作
if (Request.Cookies["userInfo"] != null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["userInfo"].Value));
}
else {
1.设置的Cookie方法一
Response.Cookies["userInfo"].Value = "UserInfo";
Response.Cookies["userInfo"].Path = "/WebSite1/CookieDemo/";
}
2.设置的Cookie方法二
System.Web.HttpCookie newcookie = new HttpCookie("userInfo");
newcookie.Value = "";
newcookie.Expires = DateTime.Now.AddDays(-1);
Response.AppendCookie(newcookie);
Response.Redirect("default.aspx"); 创建带有子键的cookies:
System.Web.HttpCookie newcookie=new HttpCookie("user");
newcookie.Values["username"]="zxf";
newcookie.Values["password"]="111";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie); 有子键读取:
if(Request.Cookies["user"]!=null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value));
Response.Write(Server.HtmlEncode(Request.Cookies["user"]["password"].Value));
}
看起来好简单,但是我在开发中有一个这样的需求:
1.1.母版页面加载时判断Cookie是否有值,没有的话则赋值
1.2.点击一个a标签通过js清除cookie,并跳转页面
需求很简单实用上面调查的就可以解决了,但是在做的过程中,使用js清除Cookie后,母版页面加载会判断Cookie是否有值,每次都是有值
这样问题就来了。
1.js的Cookie路径是当前页面所在的路径,而.net的Cookie的路径是当前服务器的根目录,也就是说js操作的和我母版页后台加载时处理的Cookie不是不是同一个
解决方法:js和.net操作Cookie的路径设置一致
设置Cookie的path属性,代码如下
js:
document.cookie = name + "=; expires=" + date.toGMTString() + "; path=/WebSite1/CookieDemo/";
.net:
Response.Cookies["userInfo"].Value = "UserInfo";
Response.Cookies["userInfo"].Path = "/WebSite1/CookieDemo/";
实际说了这么多就是为了解决一个很小的问题:js和.net后台共用一个Cookie。
当然还有很多不懂的地方,这个Path只是Cookie的一个属性,还有一个【域】这个属性没有研究
DEMO:
http://files.cnblogs.com/files/WarBlog/CookieDemo.rar
js和.net操作Cookie遇到的问题的更多相关文章
- 本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效
一般是在本地调试cookie,无论使用jquery cookie插件还是js原生态cookie方法,在谷歌浏览器chrome中都不生效,这是什么原因? 原因是: chrome不支持js在本地操作coo ...
- 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!
// 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...
- js操作cookie,实现登录密码保存 [转]
转自:http://blog.csdn.net/zyujie/article/details/8727828 ( 谢谢博主了) js操作cookie,实现登录密码保存.cookie的存放方式是以键值对 ...
- Jquery操作cookie,实现简单的记住用户名的操作
一.jquery.cookie.js介绍 jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cook ...
- JavaScript操作cookie基础分析
简要介绍 cookie是什么cookie是HTTP协议的一部分.HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器 ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- JS操作cookie以及本地存储(sessionStorage 和 localStorage )
JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...
- 转: js操作cookie
cookie的几个概念 http://dearhappyfish.blog.163.com/blog/static/1901094152012422114753777/ js操作cookie 转:ht ...
随机推荐
- (转)企业Shell实战-MySQL分库分表备份脚本
本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.htm ...
- c#输入方法名来调用方法(反射)
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...
- OpenGL Loading
什么是 OpenGL loading? OpenGL是一份API规范,并不是一个库.记住这点非常重要!它意味着每一个API背后的具体实现都依赖于你的GPU硬件.操作系统以及显卡驱动. OpenGL规范 ...
- 记一次MongoDB性能问题
下面文章转载自火丁笔记,原作者描述了一次MongoDB数据迁移过程中遇到的性能问题及其解决方案,中间追查问题的方法和工具值得我们学习.下面是其原文: 最近忙着把一个项目从MySQL迁移到MongoDB ...
- FZU 2207 ——以撒的结合——————【LCA + 记录祖先】
Problem 2207 以撒的结合 Accept: 47 Submit: 161Time Limit: 1000 mSec Memory Limit : 32768 KB Proble ...
- Jquery系列:checkbox 获取值、选中、设置值、事件监听等操作
<div id="divId" class="divTable"> <div class="tableBody"> ...
- Spring课程 Spring入门篇 5-2 配置切面aspect
本节主要讲了在xml中配置切面的demo 1 解析 1.1 配置切面xml 1.2 配置切面xml 1.3 问:什么是动态代理? 2 代码演练 2.1 配置切面xml 1 解析 1.1 配置切面xml ...
- 位运算(5)——Power of Two
判断一个整数是不是2的幂. 关键是弄明白2的幂的二进制形式只有一个1. public class Solution { public boolean isPowerOfTwo(int n) { int ...
- HTML表单(form)的“enctype”属性
Form元素的语法中,EncType表明提交数据的格式 属性值: application/x-www-form-urlencoded:在发送前编码所有字符(默认) multipart/form-dat ...
- ASP.NET MVC Tips
1. _ViewStart.cshtml会在调用每个页面的时候执行,我们可以在页面内设置Layout页面,也可以在这个页面写一些逻辑来根据不同的情况引用不同的Layout页面,详情请参考此处: