You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.0如何阻止IResponseCookies.Append()编码Cookie?

修复中间件无法读取Set-Cookie的问题

你当前的中间件代码逻辑顺序错了:你先读取了响应头,再调用_next.Invoke(context),但Cookie是在后续的中间件或Action处理过程中设置的,所以此时Set-Cookie头还不存在。

正确的做法是先执行后续的请求处理流程,再读取响应头:

public class CookieMiddleware
{
    private readonly RequestDelegate _next;

    public CookieMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        // 先让后续中间件/Controller处理请求,完成Cookie设置
        await _next(context);

        // 现在读取已经设置好的Set-Cookie头
        if (context.Response.Headers.TryGetValue("Set-Cookie", out var setCookieValues))
        {
            foreach (var cookieValue in setCookieValues)
            {
                // 这里可以调试或处理原始的Cookie字符串
                Console.WriteLine($"Raw Set-Cookie: {cookieValue}");
            }
        }
    }
}

这样就能获取到已经生成的Set-Cookie头内容了。


内容的提问来源于stack exchange,提问作者Mark Vickery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:36:34