我有一个使用 Windows Server 2003 在 IIS 6 上创建并运行的 HttpModule。我可以将 cookie 发送到浏览器,但我无法在下一个请求时读取它们,cookie 始终为空。
如果我在 IIS 7 上运行这个模块,它工作得很好。IIS 7 目前不是一个选项,因为我们还没有切换,这需要在此之前完成。
另外,我已经尝试过使用 PostAcquireRequestState 挂钩。
public void Init(HttpApplication httpApp)
{
httpApp.BeginRequest += OnBeginRequest;
}
public void OnBeginRequest(Object sender, EventArgs e)
{
var httpApp = (HttpApplication)sender;
var context = httpApp.Context;
const string cookieName = "sId";
if (!string.IsNullOrEmpty(context.Request.QueryString["cookie"]))
{
var ck = new HttpCookie(cookieName)
{
Value = httpApp.Context.Request.QueryString["cookie"],
Expires = DateTime.Now.AddDays(1)
};
httpApp.Response.Cookies.Add(ck);
}
else
{
var cookie = httpApp.Request.Cookies[cookieName]
}
}