cookie是通常用于存储有关用户信息的一条数据,存储在用户的计算机上。在大多数浏览器中,每个cookie都存储为一个小文件,但在Firefox中,它们一起存储在一个文件中。 cookie表示为键值对,你可以利用键来读取、写入或删除cookie。
创新互联是一家专业提供大东企业网站建设,专注与网站设计制作、成都网站建设、H5响应式网站、小程序制作等业务。10年已为大东众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
ASP.NET Core使用cookie来维护会话状态。包含会话ID的cookie随每个请求一起发送到客户端。本文讨论了如何处理ASP.NET Core中的cookie。
若要使用本文提供的代码示例,你应该在系统中安装Visual Studio 2019。如果还没有一份,可以在此处下载Visual Studio 2019(https://visualstudio.microsoft.com/downloads/)。
在Visual Studio中创建ASP.NET Core MVC项目
先不妨在Visual Studio 2019中创建一个ASP.NET Core MVC项目。假设系统中已安装Visual Studio 2019,请按照以下概述的步骤,在Visual Studio中创建一个新的ASP.NET Core MVC项目。
现在,你应该已经准备好在Visual Studio中使用一个新的ASP.NET Core MVC项目。我们将在本文的后续部分使用该项目。
在ASP.NET Core中读取cookie
你可以从Request.cookies集合读取cookie。下面的代表片段说明了如何从ASP.NET Core中的Request对象读取cookie。
- string cookie = Request.Cookies["Key"];
如果你想指定cookie的到期失效时间,可以使用Append方法的重载版本,如下面给出的代码片段所示。
- CookieOptions option = new CookieOptions();
- option.Expires = DateTime.Now.AddMilliseconds(10);
- Response.Cookies.Append(key, value, option);
cookieOptions类使你可以在创建cookie时指定以下额外属性:
在ASP.NET Core中写入cookie
想写入cookie,你可以利用与Request对象有关的Append方法。以下代码片段说明了如何做到这一点。
- Response.Cookies.Append(somekey, somevalue);
在ASP.NET Core中删除cookie
若要删除cookie,可以使用与Request对象有关的cookies集合的Delete方法。以下代码片段说明了如何做到这一点。
- Response.Cookies.Delete(somekey);
在ASP.NET Core中访问HttpContext
在本节中,我们将介绍如何在ASP.NET Core中处理cookie数据。我们需要访问HttpContext才能访问Request对象。你可以使用IHttpContextAccessor接口,访问ASP.NET Core中的HttpContext。HttpContextAccessor类实现该接口。
首先,你应该注册IHttpContextAccessor用于依赖项注入。以下代码片段说明了如何在Startup类的ConfigureServices方法中添加类型HttpContextAccessor的单一服务。
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddSingleton
- HttpContextAccessor>();
- //Other code
- }
你可以利用依赖项注入来获得IHttpContextAccessor实例的引用。这将反过来为你提供HttpContext的引用。
以下代码片段说明了如何访问控制器中的IHttpContextAccessor实例。请注意,当你在Visual Studio中创建新的ASP.NET Core MVC项目后,默认情况下将创建HomeController。
- public class HomeController : Controller
- {
- private readonly IHttpContextAccessor _httpContextAccessor;
- public HomeController(IHttpContextAccessor httpContextAccessor)
- {
- this._httpContextAccessor = httpContextAccessor;
- }
- //Write your action methods here
- }
在ASP.NET Core控制器方法中写入cookie数据
你可以使用以下方法在控制器中写入cookie数据。
- public IActionResult Write(string key, string value, bool isPersistent)
- {
- CookieOptions options = new CookieOptions();
- if (isPersistent)
- options.Expires = DateTime.Now.AddDays(1);
- else
- options.Expires = DateTime.Now.AddSeconds(10);
- _httpContextAccessor.HttpContext.Response.Cookies.Append
- (key, value, options);
- return View("WriteCookie");
- }
在ASP.NET Core控制器方法中读取cookie数据
一旦cookie数据成功写入,可以使用以下方法在控制器中读取cookie数据。
- public IActionResult Read(string key)
- {
- ViewBag.Data =
- _httpContextAccessor.HttpContext.Request.Cookies[key];
- return View("ReadCookie");
- }
要检查cookie是否已正确写入,可以查看Web浏览器的cookie缓存。
网页标题:如何处理ASP.NETCore中的cookie?
文章位置:http://www.csdahua.cn/qtweb/news6/215306.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网