在 ASP.NET 控制器中,如果使用 Response.Cookies.Set() 方法来设置 cookie,有时候会发现 cookie 并没有被正确地附加到响应头中。
这是因为 Response.Cookies.Set() 方法并不会立即将 cookie 添加到响应头中,而是将其添加到 Response.Cookies 集合中,等待 HttpResponse 对象结束时才提交。
为了解决这个问题,我们可以使用 HttpContext.Current.Response.Cookies.Add() 方法来代替 Response.Cookies.Set() 方法,具体示例如下:
// 错误的代码:
Response.Cookies.Set(new HttpCookie("my_cookie", "my_value"));
// 正确的代码:
HttpContext.Current.Response.Cookies.Add(new HttpCookie("my_cookie", "my_value"));