2010-01-18 2 views
0

Dans ASP.NET devrions-nous appeler Session.Abandon() lorsqu'une exception non gérée se produit? De nombreux utilisateurs finaux ont cliqué sur "Actualiser" ou "Précédent" dans le navigateur Web afin de renvoyer la demande. Je voudrais empêcher ce comportement en réinitialisant le contexte. TIA.Dans ASP.NET Doit-on appeler Session.Abandon() lorsqu'une exception non gérée se produit?

+0

En regardant les commentaires, je me demande quelles auraient été les réponses si j'avais demandé "Quand devrions-nous abandonner la session dans ASP.NET?" –

Répondre

0

Cela dépend de ce que vous gardez dans la session. Dans la plupart des cas, il ne sera pas bon de se déconnecter simplement parce qu'il y a une erreur dans votre code. Créez une page d'erreur personnalisée et redirigez-la, afin que l'utilisateur puisse actualiser le spam sur la page d'erreur aussi longtemps qu'il le souhaite.

+0

Et oui, si l'erreur se produit à cause de l'entrée que l'utilisateur a soumise, vous voudrez peut-être vérifier les validations de votre formulaire et vous assurer que l'erreur ne se produit pas en premier lieu. –

+0

L'utilisateur serait déconnecté et redirigé vers une page d'erreur personnalisée uniquement en cas de problème grave. Ça a du sens. –

1

n °.

La nouvelle soumission n'a rien à voir avec l'abandon de la session utilisateur. L'utilisateur devrait-il souffrir d'un mauvais codage? Assurez-vous de faire toutes vos actions de base de données transactionnelles et de gérer toutes les erreurs, et ce problème disparaîtra.

En outre, il existe de meilleurs moyens pour éviter de faire des actions doubles lorsque vous appuyez sur le bouton Retour ou Soumettre à nouveau. Par exemple: nos règles métier empêchent de commander deux fois le même produit dans les dix minutes pour le même objet.

+0

Il ne s'agit pas d'un mauvais codage, mais d'une exception non gérée. Veuillez consulter http://msdn.microsoft.com/en-us/library/ms229005.aspx. "Une application ne doit pas gérer les exceptions pouvant entraîner un état inattendu ou exploitable Si vous ne pouvez pas prévoir toutes les causes possibles d'une exception et que le code malveillant ne peut pas exploiter l'état de l'application, vous devez autoriser l'application à se terminer. l'éxéption." –

+0

Exception non gérée == mauvais codage. Gérez l'erreur, connectez-la en utilisant log4net ou un autre framework. Mais ne dérange pas l'utilisateur avec 500 erreurs. –

+0

Merci pour le conseil, mais il s'agit de la tolérance contre la négligence des utilisateurs plutôt que d'une discussion sur les pratiques de codage. Sans oublier que la journalisation est déjà en place et que les bogues sont toujours corrigés après la découverte. –

Questions connexes