zoukankan      html  css  js  c++  java
  • asp.net 关于SessionId

    原文: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的安全性更高。

  • 相关阅读:
    npm 引入第三方过滤器
    登录加密 md5
    JavaScript 日期处理类库 moment
    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
    js 常见的小数取整问题
    vue 路由跳转到外部链接
    js some和filter用法和区别
    前端调用后端接口返回200(成功状态码),后端有返回,但是控制台Network Response为空,没展示任何信息
    二叉树的镜像
    树的子结构
  • 原文地址:https://www.cnblogs.com/zhang1f/p/11503727.html
Copyright © 2011-2022 走看看