我有我创建并使用Windows Server 2003中,我可以送饼干给浏览器,但我不能在下一次请求读取它们在IIS 6正在运行一个HttpModule,cookie是永远空值。的HttpModule不是IIS接收缓存6
如果我运行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]
}
}
非常感谢您的帮助。这导致了我的问题的真正根源,我无法通过静态文件请求发送Cookie。我的原始请求需要是.asp或.aspx文件才能设置cookie,然后我的HttpModule可以根据需要读取Cookie。对不起,一开始我就错过了一些信息,我可以发誓服务器实际上是在读取cookie,哈哈。 – James 2012-03-29 14:09:41
你是受欢迎的,我知道你为什么伤心运行IIS7的应用程序是好的。因为你在IIS7中使用集成池。 – zhengchun 2012-03-30 01:51:27