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遇到的问题的更多相关文章

  1. 本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效

    一般是在本地调试cookie,无论使用jquery cookie插件还是js原生态cookie方法,在谷歌浏览器chrome中都不生效,这是什么原因? 原因是: chrome不支持js在本地操作coo ...

  2. 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!

    // 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...

  3. js操作cookie,实现登录密码保存 [转]

    转自:http://blog.csdn.net/zyujie/article/details/8727828 ( 谢谢博主了) js操作cookie,实现登录密码保存.cookie的存放方式是以键值对 ...

  4. Jquery操作cookie,实现简单的记住用户名的操作

     一.jquery.cookie.js介绍  jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cook ...

  5. JavaScript操作cookie基础分析

    简要介绍 cookie是什么cookie是HTTP协议的一部分.HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器 ...

  6. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  7. jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...

  8. JS操作cookie以及本地存储(sessionStorage 和 localStorage )

    JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...

  9. 转: js操作cookie

    cookie的几个概念 http://dearhappyfish.blog.163.com/blog/static/1901094152012422114753777/ js操作cookie 转:ht ...

随机推荐

  1. unity5.5 5.6 使用c#6.0或7.0

    http://blog.csdn.net/davied9/article/details/77281393

  2. 解决VMWARE 虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态

    VMWARE WORKSTATION 在安装64为操作系统报错,报错内容如图: 错误提示已经很清楚了,需要在BIOS 中打开intel VT-x g功能,开启此功能的前提是: 1.首先要确定的就是你的 ...

  3. sqlserver 限制用户只能访问指定的视图

    项目中有一个需求,要求给其它单位提供数据,我们用到了视图,并要求不能让他们看到数据库中的其它数据,我们为其创建了单独的账号,并只能看到指定视图 一.创建视图 CREATE VIEW [dbo].[v_ ...

  4. flutter initializing gradle终极解决方案

    自己开发的公众号,可以领取淘宝内部优惠券 修改flutter.gradle文件 这种做法网上一大堆的教程,如果你还没改过建议先试下,比如这篇 Flutter 运行 一直Initializing gra ...

  5. rest-framework框架——视图三部曲

    一.mixins类编写视图 1.配置url urlpatterns = [ ... re_path(r'^authors/$', views.AuthorView.as_view(), name=&q ...

  6. javascript实现数据结构: 串的块链存储表示

    和线性表的链式存储结构相类似,也可采用链式方式存储串值.由于串结构的特殊性--结构中的每个数据元素是一个字符,则用链表存储串值时,存在一个“结点大小”的问题,即每个结点可以存放一个字符,也可以存放多个 ...

  7. STROME --realtime & online parallel computing

    Data Collections ---> Stream to Channel (as source input) ----> Parallel Computing---> Resu ...

  8. 01_Quartz基础结构

    [各种任务调度的使用场景] 论坛每天凌晨统计论坛用户的积分排名. 论坛每半个小时生成精华文章. 每隔30分钟对锁定过期的用户解锁. 每月1号统计上个月各部门的业务数据. [Quartz 简介] Qua ...

  9. C语言指针的陷阱

    C语言指针的陷阱   分类: C/Cpp 转自:http://blog.csdn.net/porscheyin/article/details/3461670 “C语言诡异离奇,陷阱重重,却获得了巨大 ...

  10. matlab练习程序(生成黑白网格)

    提供了两种生成方法,一个是自己编程实现,比较灵活:另一个是调用系统的checkerboard函数,似乎只能生成8*8网格. 至于用途,也许可以用来下国际象棋. 自己函数生成: 系统函数生成: 代码如下 ...