3 Stimmen

ASP classic liest .NET-Cookies in Firefox, aber nicht in IE

Ich habe ein Problem mit ASP.NET, wenn ich versuche, ein Cookie auf subdomain1.mydomain.com zu setzen, das von subdomain2.mydomain.com gelesen werden soll.

"subdomain1" ist eine ASP.NET Anwendung, die auf IIS 6 läuft. "subdomain2" ist eine ASP-Klassiker Anwendung, die auf IIS6 läuft.

Was ich nicht verstehe, ist, dass, wenn ich meine .NET-Seite (unten) in Firefox teste, sie funktioniert. Wenn ich sie unter IE8 teste, scheint kein Cookie gespeichert/an Subdomain2 weitergegeben zu werden. Ich habe viele Variationen des unten stehenden Codes ausprobiert, ohne Erfolg (einschließlich des Hinzufügens eines Ablaufdatums/einer Ablaufzeit):

Dim k As Guid = Guid.NewGuid
Dim c As New HttpCookie("Interstitial")

With c
.Values("a") = 1
.Values("b") = 2
.Values("c") = 3
.Values("d") = 4
.Domain = ".mydomain.com"
End With

Response.AppendCookie(c) 'Have also used Response.Cookies.Add(c)

Dim url As String = String.Format("https://subdomain2.mydomain.com/?d={0}", k.ToString)

Response.Redirect(url)

Weitere Informationen, die von Bedeutung sein können:

  • Der obige Code wird als Reaktion auf einen Postback (Klick auf eine Schaltfläche) ausgeführt
  • Unter IE8 scheint die Funktion response.redirect() dazu zu führen, dass die Browser-Anfrage nie beendet wird

Für Tipps/Ideen wären wir sehr dankbar.

Danke

1voto

Keith Bloom Punkte 2341

Haben Sie versucht, die Seite durch Fiddler ? Dies ist ein brillantes Werkzeug, da es alle HTTP-Aktivitäten für eine Anfrage anzeigt.

Ich habe schon früher Probleme gehabt, bei denen es seltsame Browser-Probleme gab, die am Ende ziemlich esoterisch waren, wie die Netzwerkkonfiguration. Fiddler ist großartig, wenn es darum geht, den Deckel auf solche Probleme zu heben.

0voto

AnthonyWJones Punkte 182582

Ich glaube, das ist Absicht (vielleicht ein Fehler im Design). WinINET leitet Cookies, die in einer Redirect-Antwort gesetzt wurden, absichtlich nicht an die nachfolgende Anfrage weiter, wenn die Anfrage nicht zur selben Domäne gehört.

Zitieren Sie mich nicht, aber ich glaube, dies ist das Ergebnis eines Sicherheitspatches für einen Fehler, bei dem WinINET jedes Cookie in Set-Cookie-Headern einer Weiterleitungsantwort an den Ort der Weiterleitung weiterleitete, auch wenn das Ziel nicht in derselben Domäne lag.

Ich habe den Verdacht, dass die Fehlerbehebung drakonischer ist, als sie sein müsste.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X