千家信息网

Asp.net中安全退出时如何清空Session或Cookie

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,小编给大家分享一下Asp.net中安全退出时如何清空Session或Cookie,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下
千家信息网最后更新 2025年11月10日Asp.net中安全退出时如何清空Session或Cookie

小编给大家分享一下Asp.net中安全退出时如何清空Session或Cookie,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

概览:

网站中点击退出,如果仅仅是重定向到登录/出页面,此时在浏览器地址栏中输入登录后的某个页面地址如主页,你会发现不用登录就能访问。这种所谓的退出并不是安全的。

那么怎样做到安全退出呢?

那就是点击退出后清空相应的Session或Cookie。

清空Session的代码:

Session.Clear();Session.Abandon();

清除Cookie的正确代码(假设Cookie名称为UserInfo):

if (Request.Cookies["UserInfo"] != null){Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);}

如果需要清除所有Cookie,则遍历:

for (int i = 0; i 

清除Cookie的错误代码(假设Cookie名称为UserInfo):

if (Request.Cookies["UserInfo"] != null){Response.Cookies.Remove("UserInfo");}

你会发现,这样处理后,Cookie依然存在,为什么就是删不掉呢?我们去看看.NET的HttpCookieCollection实现源码:

public void Remove(string name){if (this._response != null){this._response.BeforeCookieCollectionChange();}this.RemoveCookie(name);if (this._response != null){this._response.OnCookieCollectionChange();}}

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

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

下面就总结下实现安全退出的几种方式:

1).用Linkbutton,Button等服务器控件实现退出

这种方式最好处理:直接在服务器控件对应的事件里编写清空Session或Cookie的代码即可。

2).用注销等HTML标记实现退出

对于这个特殊标记,可以这样实现: 注销 ,在logout.aspx的Page_Load事件中编写清空Session或Cookie的代码即可。

对于等HTML标记,可以在HTML标记的相应client事件中用Js-Ajax,或者jQuery-Ajax,在一般处理程序(.ashx)中编写清空Session或Cookie的代码即可。

对于等HTML标记,还可以这样:在当前页面添加一个服务器控件如Button,用div包含,并让其隐藏(注意:隐藏不可见,不能通过服务器属性Visible=False,只能通过设置div的display:none;来实现),在Button的服务器事件Cilck里编写清空Session或Cookie的代码;然后在HTML标记的相应client事件中用Js或者jQuery调用Button控件的Click事件即可(通过服务器属性Visible=False设置Button隐藏,Js或者jQuery调用Button控件的Click事件将失效)。

以上是"Asp.net中安全退出时如何清空Session或Cookie"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

服务 服务器 事件 代码 标记 安全 控件 客户 方式 篇文章 页面 处理 登录 中用 内容 名称 地址 客户机 就是 属性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全论文的展望模版 安徽多功能软件开发制造价格 贵阳市网络安全保卫支队 农行成都软件开发 网络安全事件统计分析报告 公司服务器硬件管理 软件开发公司昆明 至强e5系列适合软件开发吗 平南县君霖软件开发公司 java软件开发工难学吗 帧同步要求云服务器 信息网络安全的第一个时代 程序员自己开发服务器赚钱吗 小爱同学定制声音服务器响应失败 黑色沙漠未找到服务器 沈阳安卓应用软件开发公司哪个好 和谐世界土壤数据库 db2数据库查所有表结构 江大数据库系统原理 ai服务器怎么拆卸 网络安全法 网络数据是指 赤峰网络安全答题 吉尼斯世界纪录视频软件开发 换卡服务器不同可不可以一起玩 疾病和蛋白关联数据库 不可用于数据库 ef调用dll连接数据库 我的世界僵尸服务器网易 农业无人机喷洒农药软件开发 2017网络安全行业分析
0