zoukankan      html  css  js  c++  java
  • SessionID的传送

    Http是一个无状太的协议。为了保存浏览器请求状态,服务端通常用Session来实现。Session为了保存状态,生成一个SessionId在

    服务端与浏览端传输,以这个唯一的SessionId来识别浏览端在服务端器的身份(在ASP.NET中,SessionId可以通过Cookie和URL两种

    与浏览端)。
    ASP.NET中是怎么样来实现的呢?
    首先,分两种情况来没有Global.asax和有Global.asax。

    Session按Cookie封送
    先说没有Global.asax:
    在代码中,如果Session没有子项,也就是Session.Count等于0,浏览器端都没有ASP.NET_SessionId为键的Cookie,一旦Session有

    子项,浏览端就会有这个Cookie。
    如果在代码中用到Session.SessionID,Request.Cookies和Response.Cookies集合中就会多一个以ASP.NET_SessionId为键的项,值为

    当前Session.SessionID。如果代码中没有用到Session.SessionID,Request.Cookies["ASP.NET_SessionId"]会为空,

    Response.Cookies["ASP.NET_SessionId"]则不然,它会自动生成这个项,但值为空。这个空值也会发送到浏览器端的。所以不要这

    样使用。


    有Global.asax:
    如果有这个文件,浏览端都会生成ASP.NET_SessionId为键的Cookie。因为在Session_Start等方法,与Session的事件关联起来了。
    有Global.asax后,同一个浏览器端生成SessionID每次相同。

    Session按URL封关
    URL封送会在上面的任何状态下存在的。

    ****欢迎关注我的asp.net core系统课程****
    《asp.net core精要讲解》 https://ke.qq.com/course/265696
    《asp.net core 3.0》 https://ke.qq.com/course/437517
    《asp.net core项目实战》 https://ke.qq.com/course/291868
    《基于.net core微服务》 https://ke.qq.com/course/299524
  • 相关阅读:
    BZOJ2756:[SCOI2012]奇怪的游戏(最大流,二分)
    AtCoder Grand Contest
    BZOJ2565:最长双回文串(Manacher)
    BZOJ2160:拉拉队排练(Manacher)
    BZOJ3790:神奇项链(Manacher)
    BZOJ2342:[SHOI2011]双倍回文(Manacher)
    BZOJ4887:[TJOI2017]可乐(矩阵乘法)
    BZOJ2555:SubString(SAM,LCT)
    BZOJ1396:识别子串(SAM)
    luogu P1080 国王游戏
  • 原文地址:https://www.cnblogs.com/axzxs2001/p/1618998.html
Copyright © 2011-2022 走看看