【问题标题】:How to set a raw cookie value in asp.net core?如何在 asp.net core 中设置原始 cookie 值?
【发布时间】:2019-07-01 19:08:09
【问题描述】:

我想将mycookie 的值设置为value=somevalue,因此:

使用 Cookies.Append 的推荐方法不起作用,因为该值是 URL 编码的,最终是 value%3Dsomevalue。

我添加 cookie 的代码:

_context.Response.Cookies.Append("mycookie", $"value=somevalue");

我的 cookie 读取代码

_context.Request.Cookies["mycookie"]

问题:绕过 URL 编码并设置 cookie 的原始值的最佳方法是什么?

【问题讨论】:

  • 如何使用HttpCookie MyCookie = new HttpCookie("mycookie"); 创建cookie,然后将值设置为MyCookie.Value = somevalue,然后将其添加为context.Response.Cookies.Add(MyCookie);
  • HttpCookie 用于旧 ASP.NET 的 System.Web 的一部分。我不知道 ASP.NET Core 中有任何 HttpCookie 类。使用旧方式需要访问另一个HttpContext,我希望避免使用:stackoverflow.com/questions/38346333/…。
  • 那不给value=本身怎么样,试试_context.Response.Cookies.Append("mycookie", "somevalue");
  • 这很好用,但我确实需要value=。我只是不希望 = 被 URL 编码。

标签: c# asp.net-core asp.net-core-2.1


【解决方案1】:

我通过手动设置 cookie 标头找到了一个合理的解决方法。

_context.Response.Headers.Append("Set-Cookie", "mycookie=value=somevalue");

您可以使用相同的代码取回 cookie:

_context.Request.Cookies["mycookie"]

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2011-09-04
    • 1970-01-01
    • 2020-11-16
    • 2021-12-14
    相关资源
    最近更新 更多