在HTTPModule中设置Cookie

时间:2014-02-18 10:50:20

标签: asp.net cookies

我在自定义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。

1 个答案:

答案 0 :(得分:0)

这是一个已知问题。有关详细信息和解决方法,请参阅http://support.microsoft.com/kb/2666571