原文:https://www.cnblogs.com/zhang1999/p/7278020.html

登陆页面使用Session存储验证码,导致会话产生SessionId,从而导致会话固定,登陆后用来存储用户信息的SessionId不变,容易被利用

//强行销毁当前用户的所有会话内容,但是只有加载页面的时候有效,导致登陆后没有用户信息
HttpContext.Current.Session.Abandon()
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""))

改用Cookie存储

1.Cookie对象

(1).写入Cookie对象

HttpCookie cookie = new HttpCookie("data"); 注:定义cookie,name属性为data。

cookie.Values.Add("name","123"); 注:cookie是以键值对的方式存储。

cookie.Expires = DateTime.Now.AddYears(2); 注:过期时间设置为2年,也可以不设置过期时间,如果不设置cookie在浏览器关闭是自动清除。

Response.Cookies.Add(cookie); 注:写入Response对象。

(2).读取Cookie对象

HttpCookie cookie = Request.Cookies["data"]; 注:获取name属性为data的cookie

if(cookies !=null &&Cookies.HasKeys) 注:判断cookie是否存在

{

string s = cookies["name"]; 注:根据name键获取值

Response.Write(s);

}

2.Session对象

Session的定义和读取相对比Cookie容易

(1).定义Session对象

Session["Itemsession"] = "abc"; 注:Session的值为"abc",Session的类型是object所以可以赋任何类型。

(2).读取Session对象

string s =(string)Session["Itemsession"] ; 注:读取时的类型,要和定义时的类型一致。

Response.Write(s);

(3).Session特点

同一台电脑的同一个浏览器表示同一次会话,不同的浏览器表示不同的会话。

同一台电脑的同一个浏览器只能有一个Session。

Session的过期时间是在浏览器关闭时自动清除或用户不进行任何活动20分钟Session也会自动清除。

3.Cookie和Session的不同点和相同点

(1).相同点

Cookie对象和Session对象作用是在窗体之间传值。

等等

(2).不同点

Cookie将状态保存在客户端,Session将状态保存在服务器端。

Session相对Cookie,Session的安全性更高。

最新文章

  1. UWP 图片剪切旋转工具
  2. VS的快捷键F12改成和ECLIPSE一样用ctrl+点击下载线
  3. linux永久更改eth0的ip地址后仍然ping不通过
  4. http authorization basic请求代码示例
  5. 【源码】初探C#爬虫,持续更新中。。。
  6. 阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)
  7. new Thread的弊端(转)
  8. Android Studio rename module Can't rename root module
  9. Linux内存管理之slab分配器
  10. ABP官方文档翻译 8.1 通知系统
  11. 你不可不知的Java引用类型之——Reference源码解析
  12. HTML+Css让网页自动适应电脑手机屏幕
  13. python小猪蹄儿
  14. mybatis多参数传递(其中包括数组)
  15. C#复习笔记(4)--C#3:革新写代码的方式(扩展方法)
  16. suricata 配置文件threshold
  17. etcd-v2第二集
  18. Linux命令之cp
  19. C++的虚函数
  20. CSS| 實例---寬度自由調節button,圖片切換

热门文章

  1. day03记 angular代码
  2. 计算两个GPS坐标的距离
  3. 【JavaScript】数组方法之基础方法
  4. Spring AOP expose-proxy
  5. ASP:CheckBox获取前台的checked的属性
  6. 常用的JAVA第三方工具类
  7. GeoServer-2.12安装MbTiles扩展插件
  8. CF 546 B Soldier and Badges(贪心)
  9. (26)Python获取某个文件存放的相对路径(更改任意目录下保持不变)
  10. 动态DP总结