Ich habe ein HttpModule, das ich erstellt und auf IIS 6 mit Windows Server 2003 ausgeführt. Ich kann Cookies an den Browser senden, aber ich kann sie nicht bei der nächsten Anfrage lesen, Cookie ist immer Null.HttpModule empfängt keine Cookies auf IIS 6
Wenn ich dieses Modul auf IIS 7 ausführen, funktioniert es jedoch einwandfrei. IIS 7 ist im Moment keine Option, da wir nicht umgeschaltet haben und dies muss erledigt werden, bevor das passieren wird.
Außerdem habe ich bereits versucht, den PostAcquireRequestState-Hook zu verwenden.
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]
}
}
Vielen Dank für die Hilfe. Dies führte mich zur eigentlichen Ursache des Problems, nämlich dass ich keine Cookies über statische Dateianforderungen senden kann. Meine ursprüngliche Anfrage muss eine ASP- oder ASPX-Datei sein, um den Cookie zu setzen, dann kann mein HttpModule die Cookies nach Bedarf lesen. Sorry für das bisschen Miss Informationen am Anfang, ich hätte schwören können, dass der Server tatsächlich den Cookie gelesen hat, lol. – James
Sie sind willkommen, ich weiß, warum Sie traurig, die Anwendung mit IIS7 ist in Ordnung, weil Sie integrierten Pool in IIS7 verwenden. – zhengchun