偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何處理ASP .NET Core中的cookie?

譯文
開(kāi)發(fā) 后端
本文介紹了ASP.NET Core Web應(yīng)用程序中利用cookie存儲(chǔ)和檢索針對(duì)特定用戶的信息。

 

[[281505]]

【51CTO.com快譯】cookie是通常用于存儲(chǔ)有關(guān)用戶信息的一條數(shù)據(jù),存儲(chǔ)在用戶的計(jì)算機(jī)上。在大多數(shù)瀏覽器中,每個(gè)cookie都存儲(chǔ)為一個(gè)小文件,但在Firefox中,它們一起存儲(chǔ)在一個(gè)文件中。 cookie表示為鍵值對(duì),你可以利用鍵來(lái)讀取、寫(xiě)入或刪除cookie。

ASP.NET Core使用cookie來(lái)維護(hù)會(huì)話狀態(tài)。包含會(huì)話ID的cookie隨每個(gè)請(qǐng)求一起發(fā)送到客戶端。本文討論了如何處理ASP.NET Core中的cookie。

若要使用本文提供的代碼示例,你應(yīng)該在系統(tǒng)中安裝Visual Studio 2019。如果還沒(méi)有一份,可以在此處下載Visual Studio 2019(https://visualstudio.microsoft.com/downloads/)。

在Visual Studio中創(chuàng)建ASP.NET Core MVC項(xiàng)目

先不妨在Visual Studio 2019中創(chuàng)建一個(gè)ASP.NET Core MVC項(xiàng)目。假設(shè)系統(tǒng)中已安裝Visual Studio 2019,請(qǐng)按照以下概述的步驟,在Visual Studio中創(chuàng)建一個(gè)新的ASP.NET Core MVC項(xiàng)目。

  1. 啟動(dòng)Visual Studio IDE。
  2. 點(diǎn)擊“創(chuàng)建新項(xiàng)目”。
  3. 在“創(chuàng)建新項(xiàng)目”窗口中,從顯示的模板列表中選擇“ASP.NET Core Web應(yīng)用程序”。
  4. 點(diǎn)擊“下一步”。
  5. 在“配置新項(xiàng)目”窗口中,指定新項(xiàng)目的名稱和位置。
  6. 可選情況下,選中“將解決方案和項(xiàng)目放在同一個(gè)目錄中”復(fù)選框。
  7. 點(diǎn)擊“創(chuàng)建”。
  8. 在接下來(lái)顯示的“創(chuàng)建新的ASP.NET Core Web應(yīng)用程序”窗口中,從頂部下拉列表中選擇.NET Core作為運(yùn)行時(shí)環(huán)境,并選擇ASP.NET Core 2.2(或更高版本)。
  9. 選擇“Web應(yīng)用程序(Model-View-Controller)”作為項(xiàng)目模板,以創(chuàng)建新的ASP.NET Core MVC應(yīng)用程序。
  10. 確保“啟用Docker支持”和“配置HTTPS”這兩個(gè)復(fù)選框未勾選,因?yàn)槲覀冊(cè)谶@里不會(huì)使用這些功能。
  11. 確保“身份驗(yàn)證”設(shè)置為“不進(jìn)行身份驗(yàn)證”,因?yàn)槲覀冊(cè)谶@里也不會(huì)使用身份驗(yàn)證。
  12. 點(diǎn)擊“創(chuàng)建”。

現(xiàn)在,你應(yīng)該已經(jīng)準(zhǔn)備好在Visual Studio中使用一個(gè)新的ASP.NET Core MVC項(xiàng)目。我們將在本文的后續(xù)部分使用該項(xiàng)目。

在ASP.NET Core中讀取cookie

你可以從Request.cookies集合讀取cookie。下面的代表片段說(shuō)明了如何從ASP.NET Core中的Request對(duì)象讀取cookie。

  1. string cookie = Request.Cookies["Key"]; 

如果你想指定cookie的到期失效時(shí)間,可以使用Append方法的重載版本,如下面給出的代碼片段所示。 

  1. CookieOptions option = new CookieOptions();  
  2. option.Expires = DateTime.Now.AddMilliseconds(10);  
  3. Response.Cookies.Append(key, value, option); 

cookieOptions類(lèi)使你可以在創(chuàng)建cookie時(shí)指定以下額外屬性:

  • 域—用于指定與cookie有關(guān)的域
  • 到期失效時(shí)間—用于指定cookie的到期失效時(shí)間
  • 路徑—用于指定cookie路徑
  • 安全策略—用于指定cookie是否可以通過(guò)HTTPS來(lái)訪問(wèn)
  • HttpOnly—用于指定cookie是否僅對(duì)服務(wù)器可用

在ASP.NET Core中寫(xiě)入cookie

想寫(xiě)入cookie,你可以利用與Request對(duì)象有關(guān)的Append方法。以下代碼片段說(shuō)明了如何做到這一點(diǎn)。

  1. Response.Cookies.Append(somekey, somevalue); 

在ASP.NET Core中刪除cookie

若要?jiǎng)h除cookie,可以使用與Request對(duì)象有關(guān)的cookies集合的Delete方法。以下代碼片段說(shuō)明了如何做到這一點(diǎn)。

  1. Response.Cookies.Delete(somekey); 

在ASP.NET Core中訪問(wèn)HttpContext

在本節(jié)中,我們將介紹如何在ASP.NET Core中處理cookie數(shù)據(jù)。我們需要訪問(wèn)HttpContext才能訪問(wèn)Request對(duì)象。你可以使用IHttpContextAccessor接口,訪問(wèn)ASP.NET Core中的HttpContext。HttpContextAccessor類(lèi)實(shí)現(xiàn)該接口。

首先,你應(yīng)該注冊(cè)IHttpContextAccessor用于依賴項(xiàng)注入。以下代碼片段說(shuō)明了如何在Startup類(lèi)的ConfigureServices方法中添加類(lèi)型HttpContextAccessor的單一服務(wù)。 

  1. public void ConfigureServices(IServiceCollection services)  
  2.  
  3. services.AddSingleton  
  4. HttpContextAccessor>();  
  5. //Other code  

你可以利用依賴項(xiàng)注入來(lái)獲得IHttpContextAccessor實(shí)例的引用。這將反過(guò)來(lái)為你提供HttpContext的引用。

以下代碼片段說(shuō)明了如何訪問(wèn)控制器中的IHttpContextAccessor實(shí)例。請(qǐng)注意,當(dāng)你在Visual Studio中創(chuàng)建新的ASP.NET Core MVC項(xiàng)目后,默認(rèn)情況下將創(chuàng)建HomeController。 

  1. public class HomeController : Controller  
  2.  
  3. private readonly IHttpContextAccessor _httpContextAccessor;  
  4. public HomeController(IHttpContextAccessor httpContextAccessor)  
  5.  this._httpContextAccessor = httpContextAccessor;  
  6.  
  7. //Write your action methods here  

在ASP.NET Core控制器方法中寫(xiě)入cookie數(shù)據(jù)

你可以使用以下方法在控制器中寫(xiě)入cookie數(shù)據(jù)。 

  1. public IActionResult Write(string key, string value, bool isPersistent)  
  2.  
  3. CookieOptions options = new CookieOptions();  
  4. if (isPersistent)  
  5. options.Expires = DateTime.Now.AddDays(1);  
  6. else  
  7. options.Expires = DateTime.Now.AddSeconds(10);  
  8. _httpContextAccessor.HttpContext.Response.Cookies.Append  
  9. (key, value, options);  
  10. return View("WriteCookie");  

在ASP.NET Core控制器方法中讀取cookie數(shù)據(jù)

一旦cookie數(shù)據(jù)成功寫(xiě)入,可以使用以下方法在控制器中讀取cookie數(shù)據(jù)。 

  1. public IActionResult Read(string key 
  2.  
  3. ViewBag.Data =  
  4. _httpContextAccessor.HttpContext.Request.Cookies[key];  
  5. return View("ReadCookie");  

要檢查cookie是否已正確寫(xiě)入,可以查看Web瀏覽器的cookie緩存。

原文標(biāo)題:How to work with cookies in ASP.NET Core, 作者:Joydip Kanjilal

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2021-03-08 07:32:05

Actionweb框架

2009-07-21 11:11:44

刪除CookieASP.NET

2021-06-30 08:00:00

代碼DI開(kāi)發(fā)

2021-02-17 08:51:55

cookie身份驗(yàn)證

2021-02-19 06:54:33

配置系統(tǒng)ASP.NET Cor

2009-07-24 17:04:57

ASP.NET中Coo

2024-09-24 17:34:05

2009-07-30 13:33:55

ASP.NET中的co

2009-07-27 10:22:16

ASP.NET中Coo

2024-05-13 09:32:06

攔截器HTTP中間件

2021-03-04 11:10:29

容器化Docker虛擬機(jī)

2019-08-12 08:00:00

ASP.NetASP.Net Cor編程語(yǔ)言

2021-01-11 05:20:05

Controller代碼數(shù)據(jù)層

2021-01-15 05:38:28

ASPHttp端口

2021-01-13 07:33:41

API數(shù)據(jù)安全

2021-10-12 10:00:01

架構(gòu)機(jī)密數(shù)據(jù)

2021-01-05 07:51:06

版本化ASP

2024-05-21 08:14:59

代碼接口依賴注入

2021-03-17 09:45:31

LazyCacheWindows

2021-02-02 16:19:08

Serilog日志框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)