初识 Asp.Net Cookie

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fjxcsdn/article/details/86519863

1.什么是Cookie?

        是一个客户端状态保持机制,用来存储用户特定的信息。当用户再次访问时,应用程序可以检索以前的存储细信息。

1.1如图:

1.2 根据上面图片我们可以得到哪些信息?

   1.Cookie 中存储的一段文本信息,是关于网站相关的文本字符串数据。

   2.Cookie 中的存储方式两种:1.指定了过期时间,保存在本地硬盘上,设置了某网站过期时间,在指定时间内访问,那么属于该网站的Cookie数据会在请求报文中发送过来。  2.没有指定过期时间,存储在浏览器内存中。

    

2.应用场景:

    2.1登录页面有一个下次自动登陆、几天内免登陆等。可以通过Cookie记录用户已经登录,这样用户不需要每次都输入凭据。

 2.2 购物车,添加购物信息。

2.3例如什么博主选拔,让大家投票,可以将Cookile作为一个Boolean值,用来指示用户是否已经投票,这样用户就无法第二次进行投票。

 

3.Cookie创建与基本属性

 //创建Cookile
 Response.Cookies["fjx"].Value = "itcast";
 //给创建的Cookile指定过期时间
 Response.Cookies["fjx"].Expires = DateTime.Now.AddDays(1);

    如下图红框中所示,我们创建了一个名为fjx,值为itcast的Cookile,过期时间为2019年1月18日凌晨三点多,之所以差八个小时,使我们所处的时区不同,我们是东八区。差八个小时。

 

 删除Cookile:赋值一个过期的时间就行了

//删除Cookile,给他赋值一个过期的时间
Response.Cookies["fjx"].Expires = DateTime.Now.AddDays(-1);

Cookie跨域(域名):Domain属性

 //创建Cookile
 Response.Cookies["fjx"].Value = "itcast";
 //设置主域
 Response.Cookies["fjx"].Domain= "xxx.com";

4.Cookie例子学习,登录是记住用户名和密码

 public partial class WebForm1 : System.Web.UI.Page
    {
        public string LoginUserName { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {   
            if(IsPostBack)
            {  //如果是post请求
                string userName = Request.Form["txtName"];//接收用户输入的信息
                Response.Cookies["userName"].Value = Server.UrlEncode(userName);//创建一个Cookile,如果存取的中文,需要进行一下编码
                Response.Cookies["userName"].Expires = DateTime.Now.AddDays(7);//设置Cookile中数据保存时间为一周
            }
            else
            {
                //此时为Get请求,需要读取Cookile
                if (Response.Cookies["userName"] != null) 
                {
                    string name = Server.UrlDecode(Response.Cookies["userName"].Value) ;//接收用户输入的信息(进行反编码)
                    LoginUserName = name;                
                    Response.Cookies["userName"].Expires = DateTime.Now.AddDays(7);//获取用户数据后,再次保存7天
                }
            }
        }
    }
  <form id="form1" runat="server">
        <div>
            用户名:<input type="text" name="txtName"value="<%=LoginUserName%>" /><br />
            密码:<input type="password" name="txtPwd" value="" /><br />   
            <input type="submit"  value="登录" />
        </div>
    </form>

5.Cookie限制

    Cookie目前存储最大为4KB,我们用Cookie时,最后存储关键且少量的信息。且Cookie里面的数据是不安全的,所以尽量不在Cookie里面存放敏感数据。

6.有的时候用户通常禁用Cookie,所以我们需要判断用户是否禁用。

protected void Page_Load(object sender, EventArgs e)
{
    string redirect = Request.QueryString["redirect"];
    string acceptsCookies;
    if(Request.Cookies["TestCookie"] ==null)
        acceptsCookies = "no";
    else
    {
        acceptsCookies = "yes";
        // Delete test cookie.
        Response.Cookies["TestCookie"].Expires =DateTime.Now.AddDays(-1); 
            
    }
    Response.Redirect(redirect + "?AcceptsCookies=" + acceptsCookies,true);
}

关于Cookie的简单介绍就先分享到这里,后期学习将会持续分享给大家!

猜你喜欢

转载自blog.csdn.net/fjxcsdn/article/details/86519863
今日推荐