【发布时间】:2014-02-18 10:50:20
【问题描述】:
我在自定义 http 模块中设置 cookie 时遇到问题。我正在处理 BeginRequest 事件并按照以下方式设置 cookie:
HttpCookie myCookie = new HttpCookie(config.CookieName);
SitePrefCookie["key1"] = value1;
SitePrefCookie["key2"] = value2;
SitePrefCookie.Expires = DateTime.Now.AddDays(365);
SitePrefCookie.Domain = myDomain;
SitePrefCookie.Path = "/";
HttpContext.Current.Response.Cookies.Add(SitePrefCookie);
我知道 cookie 本身没有任何问题,因为如果我调用 Response.Flush() 或将状态设置为 302(因为它是用于重定向的 http 模块),它将起作用。但是我不能在一个请求中同时执行这两种操作,即刷新然后重定向,因为 ASP.Net 会抱怨标头已经发送到客户端。
我确信我可以解决这个奇怪的限制,但我只是不明白为什么在不需要重定向或刷新响应的情况下甚至没有在响应中发回 cookie。
【问题讨论】: