公司建网站需要先注册域名,电信的网做的网站移动网打不开该找电信还是移动,黑山网站建设,织梦网站建设视频本文介绍了ASP.NET Core Web应用程序中利用cookie存储和检索针对特定用户的信息。
作者#xff1a;布加迪编译 【51CTO.com快译】cookie是通常用于存储有关用户信息的一条数据#xff0c;存储在用户的计算机上。在大多数浏览器中#xff0c;每个cookie都存储为一个小文件布加迪编译 【51CTO.com快译】cookie是通常用于存储有关用户信息的一条数据存储在用户的计算机上。在大多数浏览器中每个cookie都存储为一个小文件但在Firefox中它们一起存储在一个文件中。 cookie表示为键值对你可以利用键来读取、写入或删除cookie。
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 IDE。点击“创建新项目”。在“创建新项目”窗口中从显示的模板列表中选择“ASP.NET Core Web应用程序”。点击“下一步”。在“配置新项目”窗口中指定新项目的名称和位置。可选情况下选中“将解决方案和项目放在同一个目录中”复选框。点击“创建”。在接下来显示的“创建新的ASP.NET Core Web应用程序”窗口中从顶部下拉列表中选择.NET Core作为运行时环境并选择ASP.NET Core 2.2(或更高版本)。选择“Web应用程序(Model-View-Controller)”作为项目模板以创建新的ASP.NET Core MVC应用程序。确保“启用Docker支持”和“配置HTTPS”这两个复选框未勾选因为我们在这里不会使用这些功能。确保“身份验证”设置为“不进行身份验证”因为我们在这里也不会使用身份验证。点击“创建”。
现在你应该已经准备好在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时指定以下额外属性
域—用于指定与cookie有关的域到期失效时间—用于指定cookie的到期失效时间路径—用于指定cookie路径安全策略—用于指定cookie是否可以通过HTTPS来访问HttpOnly—用于指定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缓存。
原文标题How to work with cookies in ASP.NET Core 作者Joydip Kanjilal
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期科技领域知识
歌谣带你看java面试题