c# - 在 ASP.NET Core 2.1 中使用 cookie
问题描述
我有一个简单的 ASP.NET Core 2.1 应用程序,它应该设置然后读取 cookie。
每当我尝试读取 cookie 时,它都会返回 null。进一步查看浏览器的检查工具,我找不到它。
我想出了这个小实现,看看我是否可以弄清楚发生了什么,但它不起作用..
public async Task<IActionResult> Contact(Contato contato)
{
await email.SendAsync(contato);
var option = new CookieOptions();
option.Expires = DateTime.Now.AddMinutes(10);
Response.Cookies.Append("EmailEnviado", "true", option);
var boh = Request.Cookies["EmailEnviado"];
return RedirectToAction("Contact");
}
变量boh
,当通过调试器检查时为空,即使它是在前一行中写入的。
解决方案
第一次设置后,您将无法立即读取 cookie。一旦响应创建了 cookie,您就可以读取它。考虑一下:
public async Task<IActionResult> OnPostCreateAsync()
{
var option = new CookieOptions();
option.Expires = DateTime.Now.AddMinutes(10);
Response.Cookies.Append("Emailoption", "true", option);
return RedirectToPage();
}
然后你可以在 Get 方法中读取 cookie:
public void OnGet()
{
var boh = Request.Cookies["Emailoption"];
}
推荐阅读
- neo4j - 在 Neo4j 中,我的 Cypher 查询从最近加载的对象中提取数据,但不是指定的对象
- python - 在没有 root 访问权限的 Unix 服务器上安装 pip 和 numpy
- python - 从两个单独的字典打印到 .txt 文件
- jquery - 用jquery中的特定字符串替换innerhtml字符串
- swiftui-navigationlink - 从堆栈中解除目的地后,SwiftUI navigationLink 不起作用
- snowflake-cloud-data-platform - Snowflake - 如何检索当前执行过程的名称?
- angular - 一个数据字段中的两列 - Devexpress Angular
- c++ - 双冒号前的clang格式中断
- sql-server - SQL Server /Azure 门户提供默认 (sysadmin) QUERYTRACEON 权限
- c++ - c ++如何全局引用变量