zoukankan      html  css  js  c++  java
  • 客户端禁用cookies后session是否还起效果

    设置session和cookies的代码(webform1.aspx)

               if (txtName.Text == "wlzcool")
                {
                    Session["uid"] = "hahaha";
                    Session.Timeout = 600;
                    var httpCookie = Response.Cookies["fdpwd"];
                    if (httpCookie != null)
                    {
                        httpCookie.Value = "ceshiceshi";
                        httpCookie.Expires = DateTime.Now.AddDays(30);
                    }
                }
                else
                {
                    Response.Redirect("webform1.aspx");
                }
    接收session和cookies的代码(webform2.aspx)
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    if (Session["uid"] != null)
                    {
                        Response.Write("存在session");
                    }
                    var ha = Request.Cookies["fdpwd"];
                    if (ha != null)
                    {
                        Response.Write(ha.Value);
                    }
                }
            }
    此时在firebug中
    禁用火狐的cookie
    并使用firebug将之前的cookie移除
    这次再运行设置cookie和session 的页面已经没有之前的两个cookie出现了,而运行测试session和cookie的页面会发现在禁用了cookie之后,不仅cookie没有了。session也没有了,这是因为session实际上是通过在客户端保存的ASP.NET_SessionId来进行保存的,当禁用了cookie之后,则ASP.NET_SessionId也就无法保存了,但是还是有办法来识别用户的。
    只需要在web.config中设置cookieless="true"(默认为false)
    <configuration>
      <system.web>
    	<compilation debug="true" targetFramework="4.5">
    	  <assemblies>
    		<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    	  </assemblies>
    	</compilation>
    	  <sessionState mode="InProc" cookieless="true" timeout="20"/>
    	<httpRuntime targetFramework="4.5"/>
      </system.web>
    </configuration>
    此时虽然不会再在cookie中设置这个ASP.NET_SessionId,但是会在url中包含对应的Session

    这是这次在搜房面试的人家问我的一道问题,我之前以为session是保存在服务器端的,客户端的cookie禁用对服务器端没有影响吧,但是现在看来还是有影响的。
    在php5中也有类似的情况。

    代码301表示重定向



  • 相关阅读:
    MySQL事件(定时任务)
    MySQL存储过程
    WebSocket小记
    Python计算给定日期位于当年第几周
    报错解决——Failed building wheel for kenlm
    计算机基础系列之压缩算法
    计算机基础系列之内存、磁盘、二进制
    计算机基础系列之CPU
    常用正则表达大全
    报错解决——TypeError: LoadLibrary() argument 1 must be str, not None
  • 原文地址:https://www.cnblogs.com/wlzcool/p/4216236.html
Copyright © 2011-2022 走看看