cookie数据存放在客户的浏览器上,session数据放在服务器上,cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session

 
先介绍一下比较简单的使用方法: 
给COOKIES赋值

复制代码代码如下:
Response.Cookies["uid"].Value = "20"; 
Response.Cookies["LoginCode"].Value = "58469";

以上就是分别对两个COOKIES变量赋了两个不同的传,那么在使用COOKIES时,我们怎样来控制COOKIES的有效期呢,看下面:

复制代码代码如下:
Response.Cookies["uid"].Expires = DateTime.Now.AddDays(1); 
Response.Cookies["LoginCode"].Expires = DateTime.Now.AddDays(1);

上面是分别对两个变量的有效期的1天,当然也是几小时,方法如下:

复制代码代码如下:
Response.Cookies["LoginCode"].Expires =DateTime.Now.AddHours(1);

这是有效期为1小时,同样的方法可以类推成几分钟,几秒等等。 
那我们如何获得这些COOKIES的值呢?这里要注意一点,在COOKIES没有被赋值时,你要调用就会出错,所以我们一般在调用之前会先判断一下,此COOKIES是否存在,方法:

复制代码代码如下:
if (Request.Cookies["uid"] != null) 

string ruid = Request.Cookies["uid"].Value; 

在.NET里独有的赋值方法

复制代码代码如下:
System.Web.HttpCookie user_cookies_id=new HttpCookie("uid"); 
user_cookies_id.Value="20"; 
user_cookies_id.Expires=DateTime.Now.AddDays(1); 
Response.AppendCookie(user_cookies_id); 
-------------------------------- 
HttpCooKie acookie=new Httpcookie("lastvisitcounter"); 
acookie.value=lastvisitcounter.ToString(); 
acookie.Expires=DateTime.MaxValue; 
Response.Cookie.Add(acookie); 
if(Request.Cookies["lastvisitcounter"]==null) 

textbox1.text="1"; 

else 

HttpCookie acookie=request.Cookies["lastvisitcounter"]; 
textbox1.text=server.HtmiEncode(acookie.value); 

session的使用 
session("username")="aa" 写入 
username=session("username") 读取 
Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。 
Session对象在.NET中对应HttpSessionState类,表示“会话状态”,可以保存与当前用户会话相关的信息。 
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息。用户在应用程序的页面切换时,Session对象的变量不会被清除。

对于一个Web应用程序而言,所有用户访问到的Application对象的内容是完全一样的;而不同用户会话访问到的Session对象的内容则各不相同。

Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一性。 
(1)将新的项添加到会话状态中 
语法格式为: 
Session ("键名") = 值 或者 Session.Add( "键名" , 值) 
(2)按名称获取会话状态中的值 
语法格式为: 变量 = Session ("键名") 或者 变量 = Session.Item("键名") 
(3)删除会话状态集合中的项 
语法格式为: Session.Remove("键名") 
(4)清除会话状态中的所有值 
语法格式为: Session.RemoveAll() 或者 Session.Clear() 
(5)取消当前会话 
语法格式为: Session.Abandon() 
(6)设置会话状态的超时期限,以分钟为单位。 
语法格式为: Session.TimeOut = 数值 
Global.asax 文件中有2个事件应用于Session对象 
事件名称 说明 
Session_Start 在会话启动时激发 
Session_End 在会话结束时激发

.net 中的session与cookies

Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息。HTTP 是一种无状态协议。这意味着 Web 服务器会将针对页面的每个 HTTP 请求作为独立的请求进行处理。服务器不会保留以前的请求过程中所使用的变量值的任何信息。ASP.NET 会话状态将来自限定时间范围内的同一浏览器的请求标识为一个会话,当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。

举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个Key来判断用户是否登录,如果登录的话用户名又是多少。

Cookies 
cookie 是一小段文本信息,伴随用户请求,在web服务器和浏览器之间传递。用户每次访问站点的时候, 
web应用程序都可以读取cookie包含的信息。

假设在用户请求您的网站的某个页面时,您的应用程序不仅是返回请求的页面。同时也返回一个包含日期 
和时间的cookie。用户的浏览器在获得页面的同时也获得了cookie.并且cookie保存在客户端的cookie文件夹中。

指定cookie的名字和要保存的值。可以创建多个,但每个cookie的名字必须唯一,以便日后取值时识别。(cookie是按名字储存的,要创建两个名称相同的cookie,那么最后那个cookie将覆盖前一个。)同时可以给cookie指定过期日期和时间.cookie是写入到用户硬盘上的,然后可能一直都留在磁盘上。因此,指定cookie的过期日期和时间。当用户下次访问站点的时候,浏览器会先检查您站点的所有cookie,如果某个cookie已经过期,浏览器不会把这个cookie随页面请求一起发送给服务器,而是删除。

cookie 和session 的区别: 
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 
考虑到安全应当使用session 
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 
考虑到减轻服务器性能方面,应当使用COOKIE 
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

(转).net中的session与cookies区别及使用方法的更多相关文章

  1. Servlet中(Session、cookies、servletcontext)的基本用法

    /req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 1.session的设置:            //得到和req相关联的session,如果没有就创建ses ...

  2. pytroch中cp27m和cp27mu的区别及判别方法

    python中m和mu的区别 从https://download.pytorch.org/whl中下载pytorch安装包时常会发现有相同版本的安装包有cp27m和cp27mu两种,其中cp27m是u ...

  3. session跟cookies区别

    Session和Cookie的使用总结: Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西: 我们知道网站都有一个后台管 ...

  4. Struts2中的session、request、respsonse获取方法

    个人对于struts有一种复杂的心情,平心而论,struts2是个人最早接触到的的框架,在学校的时候就已经开始学习了,大四毕业设计,无疑用的还是struct,那时候SSH还是很流行的,后来出来实习,直 ...

  5. jquery中eq和get的区别与使用方法

    $("p").eq(0).css("color") //因为eq(num)返回的是个jq对象,所以可以用jq的方法css使用get来获得第一个p标签的color ...

  6. Spring与Hibernate集成中的Session问题

    主要讨论Spring与Hibernate集成中的session问题 1.通过getSession()方法获得session进行操作 public class Test extends Hibernat ...

  7. Session 与cookies 的区别

    两个都可以用来存私密的东西,同样也都有有效期的说法. 区别在于:session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去. ...

  8. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  9. Hibernate中session.get()和session.load()的区别

    -- 翻译自https://www.mkyong.com/hibernate/different-between-session-get-and-session-load/ 很多时候你会发现,使用Hi ...

随机推荐

  1. golang之基本数据类型

    目录 一.golang之基本数据类型 1. 整型 (1)有符号(范围是负数.0和正数) (2)无符号(范围是0和正数) (3)特殊整型 (4)数字字面量语法 2. 浮点型 3. 复数类型 4. 布尔类 ...

  2. Acwing-284-金字塔(区间DP)

    链接: https://www.acwing.com/problem/content/description/286/ 题意: 虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下. ...

  3. Python CGI编程Ⅳ

    使用POST方法传递数据 使用POST方法向服务器传递数据是更安全可靠的,像一些敏感信息如用户密码等需要使用POST传输数据. 以下同样是hello_get.py ,它也可以处理浏览器提交的POST表 ...

  4. TTTTTTTTTTTTTTTTTT POJ 2724 奶酪消毒机 二分匹配 建图 比较难想

    Purifying Machine Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5004   Accepted: 1444 ...

  5. 16.Python input()函数:获取用户输入的字符串

    input() 函数用于向用户生成一条提示,然后获取用户输入的内容.由于 input() 函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input() 函数总是返回一个字符串. 例如 ...

  6. Apicloud_(项目)网上书城03_拓展模块实现

    Apicloud_(项目)网上书城01_前端页面开发 传送门 Apicloud_(项目)网上书城02_后端数据获取 传送门 Apicloud_(项目)网上书城03_拓展模块实现 传送门 实现商品详情页 ...

  7. [CSP-S模拟测试]:表格(动态开点二维线段树+离散化)

    题目传送门(内部题112) 输入格式 一个数$N$,表示矩形的个数. 接下来$N$行,每行四个整数$X_a,Y_a,X_b,Y_b$.分别表示每个矩形左下角和右上角的坐标. 保证$(X_a<X_ ...

  8. 分布式-信息方式-ActiveMQ支持的传输协议和配置

                             ActiveMQ支持的传输协议和配置■ Connector: ActiveMQ提供的,用来实现连接通讯的功能.包括: client-to-broker ...

  9. Intelij IDEA创建SpringBoot项目 - 配置文件的解释

    springboot介绍 官网:spring.io Spring Boot is designed to get you up and running as quickly as possible, ...

  10. maven web项目中运行stucts2报404的解决方案

    从这篇文章看见的https://www.cnblogs.com/xxqxxq/p/5938821.html 1.将stucts.xml中所有<action>全部注释掉,重新运行 如果运行成 ...