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

           if (txtName.Text == "wlzcool")
{
Session["uid"] = "hahaha";
Session.Timeout = ;
var httpCookie = Response.Cookies["fdpwd"];
if (httpCookie != null)
{
httpCookie.Value = "ceshiceshi";
httpCookie.Expires = DateTime.Now.AddDays();
}
}
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表示重定向

客户端禁用cookies后session是否还起效果的更多相关文章

  1. php 会话控制(禁用cookie后session为什么会失效?)

    首先说明一点:session不一定必须依赖cookie,只是php默认客户端sessionid基于cookie方式保存. 到此,我想你也应该了解了php默认的session客户端保存方式是基于cook ...

  2. 如果客户端禁用cookie,session还能使用吗?

    记得在以前找工作的时候,可多次被问到如果客户端被禁用cookie,session还能使用吗? 今天终于找到了相关的答案:我们来看一下: session是在服务器段保持会话数据的一种方法,对应的cook ...

  3. 禁用cookie后session是如何设置的

    我们都知道当在session 会话有基于cookie和基于url两种传递SESSIONID的方法.为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置 php.ini中 sessio ...

  4. 小程序客服下发消息禁止后 session from 还有用吗?

    文章概要 1. 小程序下发政策调整分析 2. session from 数据还传到底三方了没?  1. 小程序下发政策调整分析 小程序客服功能下发策略调整                       ...

  5. session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

    答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个sessio ...

  6. 会话技术——Cookies和Session详解

    会话技术 (一) 概述.用途以及分类 (1) 基本概述 概述:会话是浏览器和服务器之间的多次请求和响应 也就是说,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和 ...

  7. cookie禁用了,session还能用吗?

    Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.但为什么禁用Cookie就不能得到Session ...

  8. Cookie禁用了,Session还能用吗?原因详解

    Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.但为什么禁用Cookie就不能得到Session ...

  9. 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制

    原文:浏览器禁用cookie后php如何保持session会话-use_trans_sid机制 为防止浏览器禁用cookie导致服务器会话无法保持,php开发了一个机制,该机制开启后,浏览器发起请求后 ...

随机推荐

  1. win7开启休眠功能

    win7有的系统默认关机选项没有休眠功能,其实是没打开. cmd-> powercfg -hibernate on   即可

  2. node中简单scoket介绍

    /*socket.io是一个基于 node.js 的项目,其主要作用是将WebScoket 协议应用到所有的浏览器.该模块主要应用于实时的长连接 多请求的项目中,例如在线联网游戏中.实时聊天.实施股票 ...

  3. SQL中获取最近的N个半年度

    直接上代码: --获取往前推的N个半年度 CREATE FUNCTION F3_GetRecentNHalfYear ( @N INT ) RETURNS @Result TABLE ( Year S ...

  4. 活动与服务onbind()

  5. 笔者的编辑语法:MarkDown

    由于博客园里的文章有很多排版不好,一大堆文字堆在一块会影响到阅读. MarkDowm:百科 Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).它允许人们“使用易读 ...

  6. Ubuntu 安装JDK并配置成为默认的JDK

    Ubuntu安装JDK 系统版本:Ubuntu 15.04 x64 JDK版本:jdk-8u60-linux-x64 1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应 ...

  7. How to use python remove the '^M' when copy words from Windows to Linux

    今天帮同事用Python写了一个小工具,实现了在linux下批量文件名和去掉windows 文件到linux过程中产生^M的脚本,代码如下: !/opt/exptools/bin/python imp ...

  8. SQL Server with(nolock)详解

    大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的. 什么是并发访问:同一时间有多个用户访问同一资源,并发 ...

  9. Linux Commands intro1

    $((expression)) echo $(2+2) :wrong echo $((2+2))  : right echo Front-{A,B,C}-Back Front-A-Back Front ...

  10. MSBI--enlarge the DW database table volume

    我们在学习MSBI的时候,经常会使用官方提供的Adventureworks和AdventureworksDW示例数据库,但是官方提供的数据量有点小, 以DW为例,Factinternetsales只有 ...