ASP.NET基础培训 - Cookie的正确利用

简介: Cookies有很多名字,HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie等。 在网站开发的过程中,很多初学者其实滥用了它。 它的正确意义在于,它是在用于存储网站用户的个人数据的,什么时候存储呢? 在客户端和服务器处于未连接状态时候存的,也就是存在本地的脱机数据。

Cookies有很多名字,HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie等。

在网站开发的过程中,很多初学者其实滥用了它。

它的正确意义在于,它是在用于存储网站用户的个人数据的,什么时候存储呢?

在客户端和服务器处于未连接状态时候存的,也就是存在本地的脱机数据。

事实上,Cookie就是服务器发给客户端存在本地的小规模文本。

 

使用场景:

用户认证,会话认证,用户偏好设置,购物车数据,或者其它能够传输文本的业务。

创建Cookie:

方法1(使用HttpCookie类):

//First Way
HttpCookie StudentCookies = new HttpCookie("StudentCookies");
StudentCookies.Value = TextBox1.Text;
StudentCookies.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(StudentCookies);

方法2(直接使用Response):

//Second Way
Response.Cookies["StudentCookies"].Value = TextBox1.Text;
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

在一个Cookie中存储多个值:

//Writing Multiple values in single cookie
Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;
Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu";
Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar";
Response.Cookies["StudentCookies"]["LastName"] = "Vatsa";
Response.Cookies["StudentCookies"]["TotalMarks"] = "499";
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1); 


获取Cookie的值:

单个值:

string roll = Request.Cookies["StudentCookies"].Value; 

多个值:

//For Multiple values in single cookie
string roll;
roll = Request.Cookies["StudentCookies"]["RollNumber"];
roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"];
Label1.Text = roll; 


删除Cookie:

if (Request.Cookies["StudentCookies"] != null)
{
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);
    Response.Redirect("Result.aspx");  //to refresh the page
}

 

Now, fish! Can you use the cookie correctly?

 

 

 

 

 

目录
相关文章
|
存储 开发框架 NoSQL
ASP.NET WEB——项目中Cookie与Session的用法
ASP.NET WEB——项目中Cookie与Session的用法
295 0
|
Web App开发 开发框架 安全
[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问
看了前文的同学们应该都知道,搜狗、360等浏览器在单点登录中反复重定向,最终失败报错。 原因在于,非Chrome80+浏览器不识别Cookie上的SameSite=none属性值,导致认证Cookie在后续请求中被抛弃。
[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问
.net写入Cookie访问计数器
.net写入Cookie访问计数器
181 0
|
XML 开发框架 负载均衡
抽丝剥茧:浅议ASP.NET Cookie的生成原理
  前言   可能有人知道 Cookie的生成由 machineKey有关, machineKey用于决定 Cookie生成的算法和密钥,并如果使用多台服务器做负载均衡时,必须指定一致的 machineKey用于解密,那么这个过程到底是怎样的呢?   如果需要在 .NETCore中使用 ASP.NETCookie,本文将提到的内容也将是一些必经之路。   抽丝剥茧,一步一步分析   首先用户通过 AccountController->Login进行登录:   //   // POST: /Account/Login   public async Task Login(LoginV
468 0
|
XML 开发框架 负载均衡
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
1040 0
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
903 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
537 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
438 0