Frage

Ich benutze ASP.NET. Ich füge entweder ein Cookie hinzu oder setze ich, je nachdem, ob die HttpRequest enthält einen Cookie mit dem angegebenen Schlüssel) und unmittelbar danach Anruf Response.Redirect. Der Cookie ist nicht eingestellt. Ist dieses richtige Verhalten? Gibt es etwas, das sich gegenseitig ausschließt, wenn es ein Cookie während einer HTTP -Antwort mit einem Statuscode von 302 festgelegt hat?

Hier ist die Quelle:

        if (context.HttpContext.Request.Browser.Cookies)
        {
            var cookies = context.HttpContext.Request.Cookies;
            var stateCookie = new HttpCookie(SR.session, clientState.SessionId.ToString());
            if (cookies.AllKeys.Contains(SR.session))
            {
                context.HttpContext.Response.Cookies.Set(stateCookie);
            }
            else
            {
                context.HttpContext.Response.Cookies.Add(stateCookie);
            }
        }

Hier sind die Reaktionsüberschriften

  • X-AspnetMVC-Version-2.0
  • Verbindung - Schließen
  • Cache -Kontroll - privat
  • Inhaltstyp - Text/HTML
  • Datum - Sonne, 20. März 2011 03:48:04 GMT
  • Ort - http: // localhost: 3599/home/umgeleitet
  • Server - ASP.NET Development Server/9.0.0.0
  • X-Aspnet-Version-2.0.50727
War es hilfreich?

Lösung

Nachdem Sie ein bisschen gegoogelt haben, kann es Probleme haben, den Keks in der Umleitungsreaktion festzulegen, da dies von einigen Browsern ignoriert werden kann. (Es kann sinnvoll sein, da die Antwort dem Kunden wirklich auffordert, die Ressource zu ignorieren und stattdessen eine andere Ressource zu erhalten).

Dies wurde hier bereits besprochen: Senden von Browser -Keksen während einer 302 -Weiterleitung

Daher würde ich die Architektur so ändern, dass die Seite umgeleitet wird, um den Keks zu setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top