ASP.NET之Cookie(坑爹的Response.Cookies.Remove)

用户和实体行为分析(UEBA)基础指南及解决方案 用户和实体行为分析(UEBA)或异常检测是一种网络安全技术,它使用机器学习(ML)算法来检测网络中用户、主机和其他实体的异常活动。 阅读详情

转自:http://blog.youkuaiyun.com/bdstjk/article/details/7557344

在web开发中Cookie是必不可少的

.NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不了Cookie。

例子如下:

[csharp]  view plain copy
  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.     if (!IsPostBack)  
  4.     {  
  5.         HttpCookie UserInfo = new HttpCookie("UserInfo");  
  6.         UserInfo.Value = "bdstjk";  
  7.         Response.Cookies.Add(UserInfo);  
  8.     }  
  9.   
  10. }  
  11.   
  12. protected void btnRemoveCookie_Click(object sender, EventArgs e)  
  13. {  
  14.     Response.Cookies.Remove("UserInfo");  
  15.     Response.Write("<script type=\"text/javascript\">alert(\"删除Cookie成功!\");</script>");  
  16. }  
  17.   
  18. protected void btnCheckCookie_Click(object sender, EventArgs e)  
  19. {  
  20.     if (Request.Cookies["UserInfo"] != null)  
  21.     {  
  22.         Response.Write("Cookie存在,"+Request.Cookies["UserInfo"].Value);  
  23.     }  
  24.     else  
  25.     {  
  26.         Response.Write("Cookie不存在");  
  27.     }  
  28. }  

页面代码:

[csharp]  view plain copy
  1. <asp:Button ID="btnRemoveCookie" runat="server" Text="删除Cookie"   
  2.             onclick="btnRemoveCookie_Click" />  
  3. <asp:Button ID="btnCheckCookie" runat="server" Text="检查Cookie"   
  4.             onclick="btnCheckCookie_Click" />  


运行代码测试,你会发现,怎么点删除按钮,cookie都存在,如下图:

这是为什么呢?明明是执行了删除cookie的操作,为什么就是删不掉呢?

我们去看看.NET的HttpCookieCollection实现源码

[csharp]  view plain copy
  1. public void Remove(string name)  
  2. {  
  3.     if (this._response != null)  
  4.     {  
  5.         this._response.BeforeCookieCollectionChange();  
  6.     }  
  7.     this.RemoveCookie(name);  
  8.     if (this._response != null)  
  9.     {  
  10.         this._response.OnCookieCollectionChange();  
  11.     }  
  12. }  
  13.   
  14.    

这个操作在HttpCookieCollection这个集合里面删除了cookie,当服务器将数据传输到客户端的时候,不会包含这个已经在服务端删除了的Cookie的任何信息,浏览器也就不会对它做任何改变(remove方法只是不让服务器向客户机发送那个被删除的cookie,与此cookie留不留在客户机里无关)。所以cookie删除不掉的情况就出现。

那么如果我们想删除cookie应该怎么做呢?

把删除cookie的代码改成如下语句:

[csharp]  view plain copy
  1. if (Request.Cookies["UserInfo"] != null)  
  2. {  
  3.     Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);  
  4. }  
  5. Response.Write("<script type=\"text/javascript\">alert(\"删除Cookie成功!\");</script>");  

我们再运行程序,测试:

好了。Cookie已经删除。通过设置Cookie的过期时间为负,强制使Cookie过期。就能实现我们需要的效果了。

既然Response.Cookies.Remove没有办法实现我们需要的效果,为什么微软还有留着呢,因为CookieCollection实现ICollection接口,romove是必须实现的方法,尽管它没多大的实际价值。而集合的romove也应该是这样的实现方式,只不过微软在写MSDN的时候,描述得太不清楚了,给我们造成了不小的麻烦。

多体动力学分析软件:SIMPACK_(17).SIMPACK高级编程与脚本 自定义力和约束可以用于模拟更复杂和现实的物理场景。SIMPACK 提供了接口,允许用户通过 Python 脚本来实现自定义力和约束。以下是一个示例,展示如何定义一个自定义力函数并应用于模型。# 定义自定义力函数"""自定义力函数:param t: 时间:param position: 位置:param velocity: 速度:return: 力"""# 创建一个新的 SIMPACK 模型# 添加一个刚体# 添加一个关节# 添加一个自定义力# 设置仿真参数# 运行仿真。 阅读详情

相关推荐

VisionMaster 4.2.0安装

按照顺序安装。

XuXing_java的专栏 3804

response Cookie添加失败的原因

当在

小笨笨oO 4376

【2022KaliLinux】openvas/gvm 没有scan configs 或者是 scan config error “XXXXXXXXXXX”

gvm/openvas的configuration的scan config为空

zbossz的学习小分队 3607

Visual Studio 开发(三):Visual Studio 使用时常见问题解决方案

Visual Studio 开发(三):Visual Studio 使用时常见问题解决方案

qq_38472574的博客 276

【操作系统】 Operation System 第二章:操作系统基础操作

2.1 操作系统的启动 (1)CPU, I/O, 内存通过总线连接。 (2)DISK:存放OS; BIOS:基本I/O处理系统( basic I/O system); Bootloader: 加载OS到内存中。 (3)当电脑通电时,段寄存器CS和指令寄存器IP能够确定一个内存地址,例如CS:IP = 0xf000:fff0. (4)POST(加电自检),寻找显卡和执行BIOS。(显示器,键盘…是否...

iwanderu的博客 1万+

Simulink仿真入门到精通(三) Simulink信号

本系列教程是根据孙忠潇编著的<<Simulink仿真及代码生成技术入门到精通>>学习笔记。 目录 Simulink仿真入门到精通(一) Simulink界面介绍 Simulink仿真入门到精通(二) Simulink模块 Simulink仿真入门到精通(三) Simulink信号 Simulink仿真入门到精通(四) Simulink子系统 Simulink仿真入门到精通(五) Simulink模型的仿真 Simulink仿真入门到精通(六) Simulink模型保存为图片 Sim

king110108的专栏 5397

ASP.NET cookie设置过期问题

 1、创建Cookies有两种方法: Response.Cookies["userName"].Value = "patrick"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1); HttpCookie aCookie = new HttpCookie("lastVisit"); aCookie.Valu

dong_512的专栏 2万+

内容审核与文本安全技术综述:检测、过滤与对齐

检测质量高度依赖数据。毒性/仇恨/冒犯语言检测领域形成了一批经典数据集,但它们的标签体系差异很大:例如 OLID(OffensEval)强调“是否冒犯—冒犯类型—目标对象”三层结构;HateXplain 在“hate/offensive/normal”三分类之外,还提供目标群体与人类标注的 rationale span;RealToxicityPrompts 则不做离散标签,而是用毒性分数来研究“模型续写时的毒性退化”。ACL 汇编。

nmdbbzcl的博客 1372

浅议.NET 6 Cookie滑动过期和JWT混合认证、授权

【导读】为防止JWT Token被窃取,我们将Token置于Cookie中,但若与第三方对接,调用我方接口进行认证、授权此时仍需将Token置于请求头,通过实践并联系理论,我们继续开始整活首先我们实现Cookie认证,然后再次引入JWT,最后在结合二者使用时联系其他我们可能需要注意的事项Cookie认证在startup中我们添加cookie认证服务 接下来则是使用认证和授权中间件,注意将其置于路由和终结点终结点之间,否则启动也会有明确异常提示 我们给出测试视图页,并要求认证即控制器添加特性 ...

秉持Love and share的态度去学习和生活 1510

15.1-缓存调试解析

摘要:DSU-120提供L3缓存和监听过滤器(SF)RAM的调试功能,通过CLUSTERCDBG寄存器控制访问。该功能需在集群ON电源模式下使用,且需确保单核访问。寄存器位字段根据读写操作不同,可配置WAY、RAM类型等参数。数据读取分为监听过滤器RAM、标签RAM、数据RAM及MTE标签四种类型,各有特定的位字段解释。配置参数包括切片ID宽度、标签索引宽度等,随缓存大小变化。

baron-周贺贺-代码改变世界ctw 112

YOLO11,ultralytics-main源代码目录结构详解

本文详细介绍了YOLO11框架的ultralytics-main源代码目录结构,帮助用户更好地理解和使用YOLO模型。主要目录包括:docker文件夹,包含多种Docker镜像文件,适用于不同硬件环境;docs文件夹,存放YOLO的说明文档;examples文件夹,提供YOLO使用的示例代码;tests文件夹,包含单元测试模块;ultralytics文件夹,为核心代码所在,包含推理逻辑、配置、数据处理等模块。其中,engine文件夹负责训练和推理引擎,models文件夹存放模型架构,nn定义神经网络结构

qq_30279827的博客 1286

cookie的添加,删除,以及使用

下图为简单的网页界面通过添加cookie的名字,值,属性来设置cookie通过输入cookie的名字来打印cookie的值通过输入要删除cookie的名字来删除cookie以下为html&lt;input id="cookiename" type="text" placeholder="cookie名字"&gt;&lt;br/&gt; &lt;input id="cookiezhi" ty

chenzhuozhu的博客 4397

WorkBuddy KiCad 实战:国产 AI 搭子不只会写代码,传感器板从零走到可审查

真正可用的 PCB 教程不能承诺“一键打样”。本课把 WorkBuddy 放在需求拆分、文件生成和审查记录的位置,KiCad 负责 ERC、DRC 与制造文件,工程师负责最终判断。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、KiCad 8.0、Python 3.11 与人工审阅组成一条可复现链路。你会从“已确认的接口表、器件库来源、板框与电源方案”出发,得到“KiCad 工程、原理图、初始 BOM、ERC 报告与审查记录”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶

yueyeguzhuo的专栏 228

ASP.NET之Response.Cookies.Remove 无法删除COOKIE的原因

在web开发中Cookie是必不可少的,.NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不了Cookie。 代码如下: protectedvoidPage_Load(obj...

405

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

asp.net mvc 360浏览器和appcloud封装的app cookie设置超时时间无法删除

asp.net mvc cookies无法删除的问题。 排除问题,百度找到相关的 (1)坑爹的事情Response.Cookies.Remove删除不了Cookie 【不是这个】 (2)public static void RemoveCookie(string name) { HttpCookie cookie = HttpContext.C...

xiaocui0601的专栏 468

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

asp.net中删除cookie

在web开发中Cookie是必不可少的.NET自然也有一个强大的Cookie操作类,我们用起来也非常方便,不过在使用中我们会发现一个坑爹的事情Response.Cookies.Remove删除不了Cookie。例子如下:protectedvoid Page_Load(object sender, EventArgs e) { if (!IsPostBack) {...

weixin_33692284的博客 439

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: C#访问远程主机资源的方法
下一篇: C#线程同步方法汇总
wingahi
博客等级 码龄15年 15粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值