ASP.NET 常用状态(信息)保存方式

服务器端:Session(会话)/ Application/ Caching(缓存)/DataBase(数据库)

Session:

Session: 常用于保存登录用户ID、验证码

不同的浏览器不能共用session 因为不同的浏览器保存的sessionid(可以通过工具监视响应报文看到)不同
                           存储的数据只为某个客户端服务 ,并且能被网站的所有页面访问 跟cookie类似
                           Session只可由该会话的用户访问(因为SessionId的东东以cookie的方式保存访问者浏览器的缓存里了)

当会话过期或终止时,服务器就会清除 Session 对象

任何一个类在使用session的时候 都要告诉类要使用session,一般应用程序默认情况下不会还原session

一般应用程序在使用的时候 需添加:using System.Web.SessionState 并实现 IRequiresSessionState接口 而aspx.cs、aspx则不需要,因为aspx.cs

系统在默认情况下已经实现了IRequiresSessionState接口(可以通过反编译工具看到), aspx原本就是继承与aspx.cs的所以它也就间接的实现了IRequiresSessionState接口

如果浏览器禁用了Cookie可以启用Url来传递SessionID。

开始并为Session赋值(存储的数据为object类型):

//赋值
Session[“uName”]=“name”;
//取值
string strName = Session["uName"].ToString();
//销毁(取消/退出):

Session.Abandon();//销毁服务器端的Session对象
    Session.Clear();//清空服务端的Session对象里的键值对,Session对象并没有从Session池里销毁


Session常用属性、方法


属性


描述


SessionID


唯一用户会话标识符


TimeOut


用户超时(单位:分钟),默认20分钟


Count


会话状态集合中的项目数


方法


描述


Abandon方法


用于显式结束会话。

客户端:Cookies

Cookie是一种能够让网站服务器把少量数据(4kb左右)储存到客户端的硬盘(设置了过期时间)或内存(不设置过期时间),并且读取出来的一种技术。

浏览器访问一个站点时,只将属于当前站点的Cookie发过到服务器。(根据域名)—(没必要把每家医院的病历本都带过去。)

Cookie不兼容浏览器!(不同浏览器不共享Cookie文件数据)

服务器端语言和客户端语言都可以操作

cookie的读和写都是浏览器做的

存储的数据类型为字符串

使用示例:

//写
        HttpCookie hc = new HttpCookie("test", "My is test");
        // 设cookie的过期时间。
        hc.Expires = DateTime.Now.AddDays(7);
        Response.Cookies.Add(hc);
//读
  HttpCookie hc = Request.Cookies["test"];
        if (hc!= null)
    {
             Response.Write(hc.Value);
         }

如果服务器两次输出同一名称的cookie则相当于对cookie重新赋值

* 服务器向浏览器写出Cookie实际上就是在 响应报文中 生成响应行:

* Set-Cookie: uinfo2=123; expires=Mon, 06-Jun-2011 06:48:47 GMT; path=/

* 浏览器读取此 响应行后 会自动在客户端硬盘中产生一个Cookie文件,名为:

* Cookie:[email protected]/,注意@后的 localhoust/ ,实际上是颁发此Cookie网站的域名;

* 当浏览器下次再访问此域名时,就会自动将 后缀为 localhoust/ 的cookie文件内容发送到服务器

cookie的删除 : 服务器是不能直接的去删除浏览器上的cookie的,但是可以过设置cookie的过期时间来删除cookie(将过期时间设为-1)

cookie. Path(为指定的文件夹生成Cookie)

cookie.Domain (域/域名)

Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点的相关的Cookie提交到服务器,并且将服务端返回的Cookie更新到硬盘,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据以外,还会返回修改的Cookie,浏览器把拿到的Cookie值更新本地浏览器的Cookie就可以。

哪怕请求jpg、js、css这种文件也会带着Cookie,因为服务器端可能要进行Session的操作,比如判断是否登录。互联网优化的案例:图片服务器和主站域名不一样,降低Cookie流量的传输

时间: 2024-08-02 02:47:29

ASP.NET 常用状态(信息)保存方式的相关文章

asp.net信息保存总结

ASP.NET保存信息总结(Application.Session.Cookie.ViewState和Cache等) 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping) 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么?    为了更清楚的了解,我们总结出每一

slidingmenu+fragment实现常用的侧滑效果(包括Fragment状态的保存)

一.需求 关于fragment的问题,一直想写一篇博客了,应该当初自己也是对这玩意一点都不熟悉到现在也大概知道个日常的使用的地步. 一个侧滑的导航栏,内有4个条目,每个选项点击进入对应的界面,每一个界面是一个fragment,各界面之间自由切换,且可以保存之前的状态,也就是说,切换的过程并不会产生新的对象,不会重新去new 一个fragment对象,不需要每次点击重新加载数据,这里就涉及了一个很重要的问题,fragment状态的保存,在这篇文章里,我尽量用实例把这个问题说清楚,毕竟当初也是查了不

Ngingx常用配置(二)虚拟主机,访问控制,认证和状态信息

环境概况: IP地址 服务器状态 简述 192.168.180.4 Nginx服务器 192.168.180.23 client 192.168.171.231 client 具体测试步骤如下: (一)基于虚拟主机的配置.是通过不同的域名来区分提供的web服务器的主机,server_name指令主要用于配置基于域名的虚拟主机 1,首先在192.168.180.23修改/etc/hosts文件 [[email protected] haproxy]# vim /etc/hosts 192.168.

asp传递参数的几种方式

把下列代码分别加入a.asp和b.asp的<body></body>中,点提交,就可以将a.asp文本框的内容传给b.asp并显示出来 a.ASP <form action="B.asp" method="get"> <input name="ABC" type="text" /> <input name="" type="button&quo

【转】NHIBERNATE的各种保存方式的区别 (SAVE,PERSIST,UPDATE,SAVEORUPDTE,MERGE,FLUSH,LOCK)

前言 今天学学习NH这个框架,在新增对象的时候,看见大神用了persist而没有用Save,心中比较疑惑,查阅资料的时候,发现这篇写的非常不错,转载供大家参考. hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一.预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient.persistent.detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久

ASP.NET常用控件(转)

窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2)WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: Normal (窗体正常显示). Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示). (3)StartPosition属性:用来获取或设置运行时窗体的起始位置.(System.Windows.Forms.SystemInformation.WindowsArea.He

shell脚本:收集系统和各种服务的状态信息

脚本功能:收集系统和各种服务的状态信息 ------------------ #!/bin/bash # get system and services status # by colin # revision on 2015-10-15 ######################################## # 功能说明:该脚本用于收集系统和各种服务的状态信息 # # 部署脚本时,加参数请注意参数顺序,否则会影响传上去的数据解析结果 #+ 命令:sh system_status_v3

iOS中几种常用的数据存储方式

自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中, 具体步骤大致如下: 第一步:获得文件即将保存的路径: NSArray*documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,Y

HTML常用状态代码

HTML常用状态代码,不管是做开发,还是做SEO都是需要了解的. 我把常用的状态码给列了一下,如下: 1**:请求收到,继续处理 2**:操作成功收到,分析.接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5**:服务器执行一个完全有效请求失败 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP协议版本 200——交易成功 201——提示知道新文件的URL 202——接受和处理.但处理未完成 203——返回信息不确定或不完整 204——请