ASP.NET——Cookie与Session例子解释(一)

为什么会有这两个东西?

因为Http协议的无状态性

无状态性:是指协议对于事务处理没有记忆能力,服务器不知道客户端什么状态;比如你登录一个网站输入登录用户名及密码,如果不设置记录用户名及密码,下次你还会重新输入

于是就产生了两种状态机制,Cookie和Session,Cookie将信息记录在客户的浏览器或者自己电脑的磁盘中,而session将信息记录在服务器内存中

Cookie(客户端状态保持)基本概况


操作


创建Cookie

新建一个Web窗体,命名为CookieDemo

.aspx.cs代码如下(服务端代码创建Cookie)

public partial class CookieDemo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //创建Cookie
        Response.Cookies["cp3"].Value = "laowang";

        //设置Cookie过期期限为3天
        Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(3);

        //设置访问哪个文件夹下带着Cookie
        Response.Cookies["cp3"].Path = "/aspx/";
    }
}

对于过期时间,如果不指定期限的话,默认关闭浏览器Cookie就会自动消失

.aspx什么也不写

查看浏览器访问该页面回复报文

创建完cookie后

访问网站其他页面后,在请求报文中自带cookie值

因为在上述代码中Path值为“/aspx/”,因此设置了只有访问aspx文件夹下的页面,在请求报文中才会出现cookie值,如下图

删除Cookie

现在如果要删除刚才创建的Cookie的话,用下面的代码

Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(-1);

此时再访问AddUser.aspx,请求报文中的cookie属性便会消失

创建Cookie的大致流程如下图

正如上述所说,当访问Path属性下面的页面时,会在请求报文中自带cookie属性,那么如何

读取Cookie

下面举一个小栗子,登录页面自动显示用户名

新建一个Web窗体命名为Login

1.Login.aspx页面代码

2.Login.aspx.cs代码

那么服务端如何保存信息呢,转接下一篇Session

最后感谢您的阅读!有什么不足之处,还请指正

发布了156 篇原创文章 · 获赞 49 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/shang_0122/article/details/103344627