作为我调用的一部分,我试图在ASP.net核心管道中编写自定义中间件,但希望添加/添加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")
{
httpContext.Request.Cookies [“。AspNetCore.Session”] =“ new_key”;
}
await _next.Invoke(httpContext);
}
答案 0 :(得分:0)
您不能在同一请求中使用cookie的值。但是,您可以使用旧的HttpContext.Items
。
public async Task InvokeAsync(HttpContext context)
{
context.Request.HttpContext.Items["key"] = "Hello!";
await _next(context);
}
然后将其检索为
var value = HttpContext.Items["key"];