成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

譯文
開發 后端
本文介紹了ASP.NET Core Web應用程序中利用cookie存儲和檢索針對特定用戶的信息。

 

[[281505]]

【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項目。

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

現在,你應該已經準備好在Visual Studio中使用一個新的ASP.NET Core MVC項目。我們將在本文的后續部分使用該項目。

在ASP.NET Core中讀取cookie

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

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

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

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

cookieOptions類使你可以在創建cookie時指定以下額外屬性:

  • 域—用于指定與cookie有關的域
  • 到期失效時間—用于指定cookie的到期失效時間
  • 路徑—用于指定cookie路徑
  • 安全策略—用于指定cookie是否可以通過HTTPS來訪問
  • HttpOnly—用于指定cookie是否僅對服務器可用

在ASP.NET Core中寫入cookie

想寫入cookie,你可以利用與Request對象有關的Append方法。以下代碼片段說明了如何做到這一點。

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

在ASP.NET Core中刪除cookie

若要刪除cookie,可以使用與Request對象有關的cookies集合的Delete方法。以下代碼片段說明了如何做到這一點。

  1. Response.Cookies.Delete(somekey); 

在ASP.NET Core中訪問HttpContext

在本節中,我們將介紹如何在ASP.NET Core中處理cookie數據。我們需要訪問HttpContext才能訪問Request對象。你可以使用IHttpContextAccessor接口,訪問ASP.NET Core中的HttpContext。HttpContextAccessor類實現該接口。

首先,你應該注冊IHttpContextAccessor用于依賴項注入。以下代碼片段說明了如何在Startup類的ConfigureServices方法中添加類型HttpContextAccessor的單一服務。 

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

你可以利用依賴項注入來獲得IHttpContextAccessor實例的引用。這將反過來為你提供HttpContext的引用。

以下代碼片段說明了如何訪問控制器中的IHttpContextAccessor實例。請注意,當你在Visual Studio中創建新的ASP.NET Core MVC項目后,默認情況下將創建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控制器方法中寫入cookie數據

你可以使用以下方法在控制器中寫入cookie數據。 

  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數據

一旦cookie數據成功寫入,可以使用以下方法在控制器中讀取cookie數據。 

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

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

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

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2021-03-08 07:32:05

Actionweb框架

2009-07-21 11:11:44

刪除CookieASP.NET

2021-06-30 08:00:00

代碼DI開發

2021-02-17 08:51:55

cookie身份驗證

2021-02-19 06:54:33

配置系統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虛擬機

2019-08-12 08:00:00

ASP.NetASP.Net Cor編程語言

2021-01-11 05:20:05

Controller代碼數據層

2021-01-15 05:38:28

ASPHttp端口

2021-01-13 07:33:41

API數據安全

2021-10-12 10:00:01

架構機密數據

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日志框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲风情在线观看 | 国产亚洲精品综合一区 | 3p视频在线观看 | 国产精品一区二区三区在线 | 午夜影院在线观看 | 亚洲精品一区中文字幕乱码 | 天堂亚洲 | 成人免费视频一区二区 | 国产欧美精品一区二区色综合朱莉 | 91社区在线观看播放 | 欧美精品电影一区 | 超碰av人人| 国内精品视频免费观看 | 涩在线| 亚洲激情在线视频 | 国产精品视频一二三 | 一区二区三区视频在线 | 一区二区在线不卡 | 精品视频成人 | 亚洲欧美激情精品一区二区 | 日韩精品久久 | 国产日韩一区 | 久久在线 | 亚洲精品一区二区三区在线观看 | avmans最新导航地址 | 色视频成人在线观看免 | 亚洲成人av | 国产黄色麻豆视频 | 色视频网站免费 | 亚洲免费在线 | 一区2区| 精品99久久| 国产一区二区三区视频 | 亚洲免费在线 | av综合站 | 久久不卡 | 久色网 | 免费成人高清在线视频 | 午夜精品久久久久久久久久久久久 | 欧美激情第一区 | 欧美一级大片免费观看 |