• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


服务器端: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: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流量的传输

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
发布Asp.netcore到nginx使用nginx代理发布时间:2022-07-10
下一篇:
ASP.NET多种调用javascript脚本的方法发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap