Question

J'utilise ASP.NET. Ajouter un ou Initie un cookie (selon que le HttpRequest contient un cookie avec clé spécifiée), et appelez immédiatement après Response.Redirect. Le cookie n'est pas réglé. Est-ce un comportement correct? Y at-il quelque chose mutuellement exclusives sur un cookie lors d'une réponse HTTP avec un code d'état 302?

Voici la source:

        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);
            }
        }

Voici les en-têtes de réponse

  • X-AspNetMvc-Version - 2.0
  • Connexion - Fermer
  • Cache-Control - privé
  • Content-Type - text / html
  • Date - Sun, 20 mars 2011 03:48:04 GMT
  • Situation - http: // localhost: 3599 / Accueil / redirigée
  • Serveur - serveur de développement ASP.NET / 9.0.0.0
  • X-réSEAU-Version - 2.0.50727
Était-ce utile?

La solution

Après googler un peu, il semble que oui, il peut y avoir des problèmes avec paramétrage du cookie dans la réponse de redirection car il peut être ignoré par quelques navigateurs. (Il peut donner un sens, que la réponse est vraiment dit le client d'ignorer la ressource et obtenir une autre ressource à la place).

Cela a été discuté ici déjà: Envoi cookies du navigateur lors d'une redirection 302

Je changerais l'architecture d'une manière qui permet à la page redirigé vers pour définir le cookie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top