zoukankan      html  css  js  c++  java
  • [网络收集]cookie的用法

    Cookie (HttpCookie的实例)提供了一种在 Web 应用程序中存储用户特定信息的方法。例如,当用户访问您的站点时,您可以使用Cookie 存储用户首选项或其他信息。当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息。

    ASP.NET中的cookie:创建Cookie方法 (1)

    1. Response.Cookies["userName"].Value = “admin";
    2. Response.Cookies[“userName”].Expires = DateTime.Now.AddDays(1);  

    //如果不设置失效时间,Cookie信息不会写到用户硬盘,浏览器关闭将会丢弃。

    ASP.NET中的cookie:创建Cookie方法 (2)

    1. HttpCookie aCookie = new HttpCookie(“lastVisit”); //上一次访问时间
    2. aCookie.Value = DateTime.Now.ToString();
    3. aCookie.Expires = DateTime.Now.AddDays(1);
    4. Response.Cookies.Add(aCookie);

    ASP.NET中的cookie:访问Cookie方法(1)

    1. if(Request.Cookies["userName"] != null)
    2. Label1.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);访问Cookie方法(2)
    3. if(Request.Cookies["userName"] != null)
    4. {
    5. HttpCookie aCookie = Request.Cookies["userName"];
    6. Label1.Text = Server.HtmlEncode(aCookie.Value);
    7. }

    ASP.NET中的cookie:创建多值Cookie方法 (1)

    1. Response.Cookies["userInfo"]["userName"] = “admin";
    2. Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();
    3. Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);

    ASP.NET中的cookie:创建多值Cookie方法 (2)

    1. HttpCookie aCookie = new HttpCookie("userInfo");
    2. aCookie.Values["userName"] = “admin";
    3. aCookie.Values["lastVisit"] = DateTime.Now.ToString();
    4. aCookie.Expires = DateTime.Now.AddDays(1);
    5. Response.Cookies.Add(aCookie);

    ASP.NET中的cookie:读取多值Cookie

    1. HttpCookie aCookie = Request.Cookies["userInfo"];
    2. string userName=aCookie.Values[“userName”];
    3. string lastVisit=aCookie.Values[“lastVisit”];

    ASP.NET中的cookie:修改和删除Cookie

    不能直接修改或删除Cookie,只能创建一个新的Cookie,发送到客户端以实现修改或删除Cookie.


    cookie中存储一个信息
    比如我们建立一个名为aspxcn,值为刘强的cookie

            HttpCookie myCookie = new HttpCookie("aspxcn");
            myCookie.Value = "刘强";
            //默认是关掉浏览器cookie就过期,这个可以设置过期时间   
            myCookie.Expires = DateTime.Now.AddSeconds(50);
            Response.AppendCookie(myCookie);

    取出这个cookie的方法
            HttpCookie mycook = Request.Cookies["aspxcn"];
            this.Label1.Text = mycook.Value;

    在一个Cookie中储存多个信息比如我们在名为aspxcn的cookie下加多个信息
            HttpCookie myCookie = new HttpCookie("aspxcn");
            myCookie.Values.Add("color", "blue");
            myCookie.Values.Add("music", "love");
            Response.AppendCookie(myCookie);

    取出信息
            HttpCookie mycookie = Request.Cookies["aspxcn"];
            string values1 = mycookie["color"];
            string values2 = mycookie["music"];

    Application

    1、Application用来保存所有用户共用的信息;

    2、在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Application是理想的选择。但是在Asp.net开发环境中我们把类似的配置数据放在Web.config中;

    3、如果要使用Application要注意的是所有的写操作都要在Application_OnStart事件中完成(global.Asax),尽管可以使用Application.Lock()避免了冲突,但是它串行化了对Application的请求,会产生严重的性能瓶颈;

    4、不要使用Application保存大数据量信息;

    5、代码:

    写:Application["UserID"] = "test";

    读:string UserName = Application["UserID"].ToString();

    Session

    1、Session用来保存每一个用户的专有信息;

    2、Session的生存期是用户持续请求时间加上一段时间(一般是20分钟左右);

    3、Session信息是保存在Web服务器内存中的,保存数据量可大可小;

    4、Session超时或者被关闭将自动释放数据信息;

    5、由于用户停止使用应用程序之后它仍在内存中存留一段时间,因此这种方法效率较低;

    6、代码:

    写:Session["UserID"] = "test";

    读:string UserName = Session["UserID"].ToString();

    Cookie

    1、Cookie用来保存客户浏览器请求服务器页面的请求信息;

    2、我们可以存放非敏感的用户信息,保存时间可以根据需要设置;

    3、如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止;

    4、Cookie对象的Expires属性设置为MinValue表示永不过期;

    5、Cookie存储的数据量受限制,大多数的浏览器为4K因此不要存放大数据;

    6、由于并非所有的浏览器都支持Cookie,数据将以明文的形式保存在客户端;

    7、代码:

    写:Resopnse.Cookies["UserID"] = "test";

    读:string UserName = Resopnse.Cookies["UserID"].ToString();

    ViewState

    1、ViewState用来保存用户的状态信息,有效期等于页面的生命周期;

    2、可以保存大量数据但是要慎用,因为会影响程序性能;

    3、所有的Web服务器控件都是用ViewState在页面PostBack期间保存状态;

    4、不需要则关闭 @page 里面设置EnableViewState=false;

    5、代码:

    写:ViewState["ID"] = "test";

    读:string ID = ViewState["ID"].ToString();

    Cache

    1、Cache用于在Http请求期间保存页面或者数据;

    2、Cache的使用可以大大的提高整个应用程序的效率;

    3、它允许将频繁访问的服务器资源存储在内存中,当用户发出相同的请求后,服务器不是再次处理而是将Cache中保存的数据直接返回给用户;

    4、可以看出Cache节省的是时间(服务器处理时间);

    5、Cache实例是每一个应用程序专有的,其生命周期==该应用程序周期,应用程序重启将重新创建其实例;

    6、注意:如果要使用缓存的清理、到期管理、依赖项等功能必须使用Insert 或者Add方法方法添加信息;

    7、代码:

    写:Cache["ID"] = "test"; 或者 Cache.Insert("ID","test");

    读:string ID = Cache["ID"].ToString();

    Hidden

    1、Hidden控件属于html类型的服务器控件,始终处于隐藏状态;

    2、每一次提交的时候它会和其他服务器控件一起提交到服务器端;

    3、代码:

    写:Hidden.Value = "king";

    读:string id = Hidden.Value; 要使用Runat=server

    查询字符串

    1、查询字符串的方式是将要传递的值连接在URL后面;

    2、一般用于页面之间传递信息;

    3、由于URL的长度有一定的限制,因此不能传递太大的信息;

    4、安全性不是很好。

    5、代码:

    传值页面:Response.Redirect("List.aspx?id=123&name=abc");

    取值页面:string name = Request.QueryString["name"]; string id = Request.QueryString["id"];

    Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);

    Request.QueryString:获取地址栏参数(以GET方式提交的数据)

    Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。

           而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原本想要的值了。

  • 相关阅读:
    JavaScript实现类的private、protected、public、static以及继承
    OSS网页上传和断点续传(STSToken篇)
    OSS网页上传和断点续传(OSS配置篇)
    Linq sum()时遇到NULL
    SQLSERVER事务日志已满 the transaction log for database 'xx' is full
    笔记本高分辨软件兼容问题,字体太小或模糊
    H5上传图片之canvas
    An error occurred while updating the entries. See the inner exception for details.
    无限级结构SQL查询所有的下级和所有的上级
    SQLserver 进程被死锁问题解决
  • 原文地址:https://www.cnblogs.com/lushuicongsheng/p/1875965.html
Copyright © 2011-2022 走看看