可以用asp.net core中间件添加cookie来请求吗?

Jag*_*mar 6 cookies middleware request session-cookies asp.net-core

我尝试在 ASP.net core 管道中编写自定义中间件,作为我调用的一部分,想要附加/添加 cookie,以便管道中的下一个中间件可以访问这些 cookie。

设置 cookie 值时出现编译错误。任何人都可以推荐解决这个问题的方法吗?

注意:当我尝试使用 Response.Cookie 时,它​​可以工作,但唯一的问题是,cookie 仅反映来自浏览器的下一个请求,但我需要在执行此命令后立即反映管道中的下一个中间件。

下面的代码片段

  public async Task Invoke(HttpContext httpContext)
        {


            var queryParameters = httpContext.Request.Query;
            var cookies = httpContext.Request.Cookies;
            if (!cookies.ContainsKey(".AspNetCore.Session")
                || cookies[".AspNetCore.Session"] != "new_key")
            {
Run Code Online (Sandbox Code Playgroud)

httpContext.Request.Cookies[".AspNetCore.Session"] = "new_key";

            }


            await _next.Invoke(httpContext);
        }
Run Code Online (Sandbox Code Playgroud)

Win*_*Win 5

您不能在同一请求中使用 cookie 的值。但是,您可以使用旧的HttpContext.Items.

public async Task InvokeAsync(HttpContext context)
{
    context.Request.HttpContext.Items["key"] = "Hello!";
    await _next(context);
}
Run Code Online (Sandbox Code Playgroud)

然后您将其检索为

var value = HttpContext.Items["key"];
Run Code Online (Sandbox Code Playgroud)