在CSDN看到一个cookie设置domain时,如何删除的问题,

自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和domain之间的关系,下面是一些测试结果的总结

设置cookie
  非顶级域名,如二级域名或者三级域名,设置的cookie的domain只能为顶级域名或者二级域名或者三级域名本身,不能设置其他二级域名的cookie,否则cookie无法生成。

  顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名,否则cookie无法生成。

  如www.abc.com能设置domain为abc.com或者www.abc.com,但不能设置domain为news.abc.com,这样cookie不会生成。

+展开

-C#
HttpCookie hc = new HttpCookie("abc", "123");
hc.Domain = "news.abc.com";//
hc.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(hc);//==========这样cookie无法生成

  abc.com只能设置domain为abc.com,不能为www.abc.com等2级域名,如果设置为其他domain二级域名,cookie无法生成。

+展开

-C#
HttpCookie hc = new HttpCookie("abc", "123");
hc.Domain = "www.abc.com";///
hc.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(hc);//==========这样cookie无法生成

  未指定domain时,默认的domain为用哪个域名访问就是哪个,如果为顶级域名访问,那么可以被其他2级域名共享。

读取cookie
  二级域名能读取设置了domain为顶级域名或者自身的cookie,不能读取其他二级域名domain的cookie。所以要想cookie在多个二级域名中共享,需要设置domain为顶级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。

  顶级域名只能获取到domain设置为顶级域名的cookie,其他domain设置为二级域名的无法获取。

删除cookie
  1)顶级域名的cookie在顶级域名或者2级域名都可以删除,但是用非顶级域名访问的网站要删除顶级域名的cookie,需要设置获取到的cookie的domain为顶级域名,这样才能删除顶级域名的cookie,否则无法删除,默认的会删除访问的域名下对应的cookie,而不是顶级域名的。

+展开

-C#
HttpCookie hc = Request.Cookies["abc"];
if (hc != null)
{
    hc.Domain = "abc.com";/指定为顶级域名则可以在其他二级域名中删除顶级域名的cookie,否则默认删除的是本域名下的cookie
    Response.Write("删除域名Cookie!
");
    hc.Expires = DateTime.Now.AddDays(-1);
    Response.Cookies.Add(hc);
}

  2)删除2级域名自身生成的cookie不需要设置domain,可以直接删除。

  下面为完整的测试示例,大家自己可以测试一下,注意后面标注了/的代码,这些是关键,也注意修改修改代码中设置的域名,我这里为了方便,直接设置了系统hosts文件将abc.com作为测试。

+展开

-HTML
<%@ Page Language="C#" %>
<script runat="server">
    private void SetCookie(string name,string value,string domain)
    {
        HttpCookie hc = new HttpCookie(name, value);
        hc.Domain = domain;
        hc.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(hc);
    }
    private void ReadCookie(string name)
    {
        HttpCookie hc = Request.Cookies[name];
        if (hc != null) Response.Write("设置的Cookie为:" + hc.Value+"|"+hc.Domain);
        else Response.Write("Cookie值为空!");
    }
    private void DeleteCookie(string name,string domain)
    {
        HttpCookie hc = Request.Cookies[name];
        if (hc != null)
        {
          hc.Domain = domain;
            Response.Write("删除域名Cookie!
");
            hc.Expires = DateTime.Now.AddDays(-1);
            Response.Cookies.Add(hc);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {

//  SetCookie("abc", "abc.com--" + DateTime.Now.ToString(), "www.abc.com");
        ReadCookie("abc");
  // DeleteCookie("abc","abc.com");
      
    }
script>

转载于:https://www.cnblogs.com/w10234/p/5415946.html

顶级域名和二级域名共享cookie及相互删除cookie相关推荐

  1. php5.6 开二级域名,PHP二级域名session共享方案

    一般来讲网站都会有主站和子站,比如域名是linuxidc.com,那么一般来讲linuxidc.com和www.linuxidc.com就会是主站,而像bbs.linuxidc.com就会作为论坛而存 ...

  2. SSL证书绑定了顶级域名后二级域名还需再申请吗

    现在普遍情况下,SSL证书都是需要与域名绑定的,不少企业为了拓展业务的需要,很多情况下网站都存在有多个二级域名.那要是在顶级域名已绑定了SSL证书的前提下,那些企业网站的二级域名还需要申请吗? 这个问 ...

  3. 根域名、顶级域名、二级域名_找到出售顶级域名的7个最佳地方(+专家提示)

    根域名.顶级域名.二级域名 We have been often asked by many readers about the best places to find premium domain ...

  4. 域名管理系统 二级域名_域名系统简介

    域名管理系统 二级域名 by Sumedh Nimkarde 由Sumedh Nimkarde 域名系统简介 (An introduction to the Domain Name System) Y ...

  5. 一级域名和二级域名的区别是什么?作用怎样?

    顶级.二级.三级域名的区别和构成 顶级.二级.三级域名的区别 一个完整的域名由二个或二个以上部分组成,各部分之间用英文的句号"."来分隔,最后一个"."的右边部 ...

  6. MVC利用Routing实现多域名绑定一个站点、二级域名以及二级域名注册Area

    最近有这么个需求:在一个站点上绑定多个域名,每个域名进去后都要进入不同的页面.实现了这个功能以后,对于有多个域名,且有虚拟空间,但是虚拟空间却只匹配有一个站点的用户来说,可以节省很多小钱钱. 很久以前 ...

  7. 一级网站域名与二级域名的区别,如何注册网站一级域名

    很多人分不清楚网站的一级域名和二级域名,听到说域名还分级的时候总是一脸问号.今天小编就来跟大家说说有关域名的等级,特别是一级域名和二级域名之间的区别,一级如何注册网站一级域名. 网站域名的分级及一二级 ...

  8. 一级域名和二级域名的差异

    一级域名又称顶级域名 www.def.com这种形式的域名并不是一级域名,他只是一个二级域名,www只是一个主机名 真正的一级域名是由: 一个合法字符串+域名后缀组成, def.com这种形式的域名才 ...

  9. 一级域名与二级域名的区别

    今天别人问道一级域名与二级域名的区别时,我既然啥也不知道,所以特地到了解了一下 什么是一级域名 一级域名又称为顶级域名,大家需要注意的是,www.lisp.com这种形式的域名并不是一级域名,它只是一 ...

最新文章

  1. 一份平民化的应用性能优化检查列表(完整篇)--转
  2. Oracle编程入门经典 第10章 PLSQL
  3. 关于小型长周期项目的一些建议
  4. 滚动焦点图实现原理和实践[原创视频]
  5. Java基础day16
  6. 2006年软件500强
  7. c语言中线程的特性,具有C 11多线程的特征库
  8. ezcad旋转轴标刻参数_激光打标机软件ezcad中地球仪标刻使用方法教程详解
  9. 软件自动安装管理器 -提供源码下载
  10. Python3.6实现付费酷狗音乐免费下载(已用tkinter封装GUI)
  11. 打印1000张大概多少钱,打印费多少钱一张
  12. WindowsMac本地搭建Code-Push-Server热更新服务器
  13. 量化交易之股票数据的获取——同花顺软件
  14. OC桥接Swift学习记录
  15. 安装谷歌插件,程序包无效,解决方法
  16. 流氓与骗子的斗嘴(转)
  17. 不可不看:管理定理一网打尽
  18. javascript join()
  19. python列表生成式
  20. 【mac】nvm 的安装和使用,解决mac重启node not found,每次都得source ~/.bash_profile

热门文章

  1. 一个MD4在线加密脚本源码
  2. 合成谬误与公地悲剧(为何设置产品总监职位及核算名义成本)
  3. 守住你自己的“沉香”
  4. Jmeter如何进行http接口测试
  5. kali linux 数据源,kali Linux msf5 连接数据库 No database support
  6. Spring MVC 自定义验证器示例
  7. sql查询每科成绩的最高分_数据分析SQL查询:一文带你入门到掌握
  8. 做好前端的话HTML和CSS基础必须夯实!
  9. 软件加入使用时间_Mac实用菜单栏管理小工具 Bartender 3 | Mac软件天堂
  10. Java教程:Java输出杨辉三角形