设置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. leveldb源码分析—Recover和Repair

    leveldb作为一个KV存储引擎将数据持久化到磁盘,而对于一个存储引擎来说在存储过程中因为一些其他原因导致程序down掉甚至数据文件被破坏等都会导致程序不能按正常流程再次启动.那么遇到这些状况以后如 ...

  2. 【php】使用gdb调试php程序

    1.简介 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.同时GDB也具有例如d ...

  3. poj 3159 Candies 差分约束

    Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 22177   Accepted: 5936 Descrip ...

  4. Mac/Linux 定时运行命令行

    想要开机运行的话可以通过 mac 自带的 Automator 将要运行的命令打包成一个app,用后在用户组的“登录时启动”列表里加上那个app. 但是想要定时运行就不能这么做了,要用上一个叫cront ...

  5. Android 系统架构

    Android 系统从下至上分为四层:Linux 内核.Android 核心库及Android 运行时环境(Android Runtime). 应用程序框架以及应用程序等. Linux 内核(Linu ...

  6. 开创学习的四核时代-迅为iTOP4412学习开发板

    产品特点: 处理器: Exynos 4412 处理器,Cortex-A9四核,功耗性能俱佳! 性能: 1GB(可选2GB) 双通道 64bit数据总线 DDR3: 4GB(可选16GB)固态硬盘EMM ...

  7. Shell basic1

    A shell script is a text file that typically begins with a shebang, as follows: #!/bin/bash /bin/bas ...

  8. Linux 系统常用命令汇总(四) 程序和资源管理

    程序和资源管理 分类 命令 选项 注解 背景管理 & command+& 将任务放到后台进行 ctrl+z 暂停任务 fg [%number] 讲后台程序推到前台来,number表示进 ...

  9. hihoCoder #1388 : Periodic Signal ( 2016 acm 北京网络赛 F题)

    时间限制:5000ms 单点时限:5000ms 内存限制:256MB 描述 Profess X is an expert in signal processing. He has a device w ...

  10. mysql 防止update/delete误操作

    身为一php开发攻城狮,常常涉及在应用中写update/delete语句,忘记加where,后果不堪设想. 还会出现在cml下直接操作mysql的情况,如果mysql 权限够大,一个update/de ...