2010-05-22 5 views
0

J'essaie de trouver le meilleur moyen de conserver un objet ou d'utiliser le même objet à un point ultérieur du code. Donc, je crée un objet, puis vous êtes redirigé vers une autre page (un formulaire) qui doit utiliser des variables de cet objet. Ce formulaire est soumis à un tiers et il y a des choses terminées et ensuite ils demandent une page sur mon application qui exécute un peu plus de code et qui a de nouveau besoin des variables d'objets. J'ai pensé à la base de données, mais tout cela est fait en une seule fois. Ceci est fait au cours d'un processus de commande utilisateur et après il est terminé, il n'y a aucune raison de récupérer cet objet à nouveau. Donc, ajouter et récupérer à partir d'une base de données semble être exagéré et je pense que cela ralentirait le processus. Objets persistants dans ASP.NET

  • En ce moment j'utilise Session mais j'entends toujours ne pas l'utiliser mais personne ne dit vraiment pourquoi je ne devrais pas, sauf que c'est une mauvaise pratique.
  • Je ne peux pas vraiment utiliser les valeurs de retour, car les pages ne fonctionnent pas de cette façon. Le processus de paiement commence dans un code dll qui redirige vers le formulaire qui est soumis à la tierce partie et la page est demandée par le tiers.
  • J'ai commencé à lire sur l'objet Cache mais je ne l'ai pas encore utilisé et je n'en suis pas encore sûr. Donc, je ne suis pas vraiment sûr de la meilleure façon de le faire. Quelles sont toutes les options et que recommande tout le monde comme le meilleur moyen?

  • Répondre

    1

    Si vous utilisez Session et que la session expire, vous perdez les données. L'utilisateur devrait recommencer. En outre, toutes ces données sont conservées jusqu'à 20 minutes après que l'utilisateur quitte la page, par défaut

    La persistance dans une base de données n'est pas mauvaise et l'enregistrement peut vous fournir des données de piste d'audit utiles ultérieurement.

    L'objet de cache est un cache global, il n'est donc pas spécifique à un utilisateur particulier. Tout utilisateur ou page du domaine d'application peut accéder à ces données. Vous pouvez utiliser le nom d'utilisateur pour le garder, mais je pense que la base de données est une meilleure option

    +0

    Un autre problème avec la base de données, est que pour chaque utilisateur qui extrait, ils auront un enregistrement dans la base de données. Il pourrait s'agir de milliers d'enregistrements et je n'ai même plus besoin d'accéder à ces valeurs une fois qu'ils ont passé la commande. Je devrais supprimer le dossier après qu'ils aient fini. Cela ne ressemble-t-il pas à une taille? – user204588

    +0

    La session n'expire-t-elle pas seulement si l'utilisateur arrête de demander des pages et 20 minutes plus tard. Tout cela se passe lors d'un processus de paiement, donc je ne pense pas que je perds la session à ce stade. – user204588

    +0

    dépend de ce que vous voulez. Pourquoi serait-ce un gaspillage de stocker un enregistrement et ensuite le supprimer si vous n'en avez pas besoin? vous pouvez même transférer certaines données à une table d'audit et ignorer le reste. Si vous mettez beaucoup de données dans les variables de session, vous avez tout ce qui traîne sur votre serveur web jusqu'à 20 minutes après que l'utilisateur quitte la page. –

    Questions connexes