版权声明:本文为博主原创文章,未经博主允许不得转载。 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的简单介绍就先分享到这里,后期学习将会持续分享给大家!