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();
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:administrator@localhost/,注意@后的 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流量的传输
ASP.NET 常用状态(信息)保存方式的更多相关文章
- asp.net 常用几种下载方式
protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使 ...
- Keras模型的保存方式
Keras模型的保存方式 在运行并且训练出一个模型后获得了模型的结构与许多参数,为了防止再次训练以及需要更好地去使用,我们需要保存当前状态 基本保存方式 h5 # 此处假设model为一个已经训练好的 ...
- (摘录)26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- 26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- asp传递参数的几种方式
把下列代码分别加入a.asp和b.asp的<body></body>中,点提交,就可以将a.asp文本框的内容传给b.asp并显示出来 a.ASP <form actio ...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- Hibernate操作和保存方式
Session API [Java Hibernate 之 CRUD 操作]http://www.codeceo.com/article/java-hibernate-crud.html [Ses ...
- ASP.NET常用编程代码(二)
1.绑定在DataList中的DropDownList private void dlistOrder_EditCommand(object source, System.Web.UI.WebCont ...
- iOS中几种常用的数据存储方式
自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
随机推荐
- zabbix3.0安装之图形界面显示异常【server】
前面记录过Zabbix3.0的安装过程,遇到一些坑,当时就在博文最后提到过,显示界面只有文字没有样式的问题.今天就解决这个小问题. 首先, 我们的安装是基于nginx作为web服务器的,不是传统的用A ...
- ife-task0003学习收获总结
+ 编写可维护的css原则是,尽量减少改动时要编辑的地方(减少代码重复). + CSS布局奇淫技巧之-高度自适应 高度自适应:通过绝对定位来解决高度自适应的问题,元素不设置高度,设置绝对定位,将top ...
- Shiro标签
在使用Shiro标签库前,首先需要在JSP引入shiro标签: <%@ taglib prefix="shiro" uri="http://shiro.apache ...
- MySQL服务 - MySQL程序的配置文件、参数、变量查看
查看配置文件及读取顺序 MySQL的配置文件以.cnf结尾,可能会有多个,而不同版本的MySQL程序的读取配置文件的路径也都不同,要想获取MySQL读取配置文件的顺序可以通过以下指令查看: shell ...
- Format specifies type 'int' but the argument has type 'struct node *'
/Users/Rubert/IOS/iworkspace/LineList/LineList/main.c::: Format specifies type 'int' but the argumen ...
- 栈,队列的java实现
介绍 http://501565246-qq-com.iteye.com/blog/2047078 实现: http://blog.csdn.net/zsw101259/article/details ...
- java如何提取url里的域名
使用java标准类库java.net.URL java.net.URL url = new java.net.URL("http://blog.csdn.net/zhujianlin19 ...
- Cookie实现商品浏览记录--方式二:JS实现
使用Cookie实现商品浏览记录:方式二:JS方法实现cookie的获取以及写入.当某一个产品被点击时,触发JS方法.利用JS方法判断一下,此产品是否在浏览记录中.如果不存在,则将产品ID加入到coo ...
- web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" ...
- ASP.NET 服务器控件的生命周期
服务器控件生命周期简介 服务器控件的生命周期是创建服务器控件最重要的概念.作为开发人员,必须对服务器控件生命周期深刻理解.当然,这不是一朝一夕就可以做到的.对于学习控件开发技术的初学者,可以不必掌握得 ...