asp.net: les données mises en session sont disponibles lorsque vous travaillez dans Internet Explorer mais pas dans l'opéra

StackOverflow https://stackoverflow.com/questions/414488

  •  03-07-2019
  •  | 
  •  

Question

c'est une chose très étrange - j'ai un site Web qui fonctionne parfaitement dans maxthon (navigateur basé sur Internet Explorer). Je l'ai commencé à l'opéra et j'ai découvert que les données placées dans le dictionnaire de session sur un site n'étaient pas disponibles sur l'autre ... Je veux dire que j'ai Welcome.aspx, où, lorsque vous cliquez ensuite, le code suivant est exécuté:

Session["sessionData"] = sessionData;
Response.Redirect("~/Models.aspx");  

pendant le débogage, je peux voir que dans models.aspx Session à vide lors de l'exécution dans opera mais tout va bien lors de l'exécution dans maxthon. Quelqu'un at-il une idée de ce qui peut être faux? parce que je ne suis pas au courant .. est-ce une question de préférences d'opéra ou est-ce quelque chose de code?

Edit: j’ai coché Session.IsNewSession et lors de son exécution dans maxthon, isnewsession est défini sur false, mais dans opera, il est vrai. il semble que dans l'opéra, lors du passage à une nouvelle page, il crée en quelque sorte une nouvelle session ...

Était-ce utile?

La solution

Si vous écrivez la session du premier coup, vous devriez le faire

Response.Redirect("nextpage.asp", false);

Sinon, il n'écrira pas l'intégralité du responsestream et le cookie pourrait ne pas avoir été écrit. Vous pouvez plutôt choisir d’avoir des sessions sans cuisine. Mais ensuite votre ouverture au détournement de session.

Autres conseils

La session ASP.NET est stockée par une clé enregistrée en tant que cookie dans le navigateur. Vérifiez si Opera accepte les cookies. Il en aura besoin pour que la session ASP.NET fonctionne correctement.

Peut-être avez-vous désactivé les cookies dans Opera. La session fonctionne (sauf spécification sans cookie dans web.config) en stockant un identifiant dans un cookie. Si le brwoser n'autorise pas l'accès, le serveur ne pourra pas localiser les données

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