.NET Core 2.0如何阻止IResponseCookies.Append()编码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
相关产品推荐
相关产品推荐

