Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 17081|Répondre: 2

[ASP.NET] httpContext.Current.Items

[Copié le lien]
Publié sur 11/02/2018 10:42:10 | | | |

HTTP est un protocole sans état. Chaque requête est indépendante, et son exécution ainsi que ses résultats ne sont pas directement liés à la demande précédente et à la requête suivante, et elle ne sera pas directement affectée par la réponse à la demande précédente, ni directement sur la réponse à la demande suivante.

En fait, notre système permet souvent aux utilisateurs de partager les mêmes données (état) entre le navigateur client et le serveur pour plusieurs requêtes, telles que les informations de compte de connexion de l’utilisateur. Ainsi, ASP.NET fournit de nombreuses variables pour gérer l’état : état de l’application, état de la session, état de la vue, etc.

L’objet HttpContext ne concerne qu’une seule requête http.Les propriétés de cette classe incluent également les objets Request, Response, Session objects, etc. Il s’agit de la collection Items de la classe HttpContext, qui contient un objet de table de hachage sous forme de key-value.

Tout d’abord, examinons l’objectif de HttpContext.Current.Items, qui ne fonctionne que sur une seule requête utilisateur (HttpContext.Current.Items valable pour un seul HTTPRequest). Lorsque cette requête est complétée, la collecte d’éléments sera perdue lorsque les informations du serveur seront renvoyées au navigateur. L’objet Session est pour la session de l’utilisateur, c’est-à-dire qu’il agit sur plusieurs requêtes utilisateurs, et l’information est perdue après l’expiration de la session.

Puisque HttpContext.Current.Items a un cycle de vie aussi court, dans quelles circonstances peut-il être utilisé ? Il est noté ici que HttpContext.Current.Items peut être utilisé lors du partage de données entre HttpModule et HTTPHandler, car chaque requête utilisateur passe par le pipeline d’exécution HTTP HttpModule, HTTPHandler. Lorsque vous implémentez la méthode IHttpMoudle pour transmettre des informations à la demande utilisateur via HttpMoudle. Vous pouvez utiliser HttpContext.Current.Items pour transférer des données dans différentes pages de requête et différents HttpModules, mais une fois la requête terminée et les données postées, les données de cette collection seront perdues d’elles-mêmes. Comme le montre la figure suivante :




De plus, lorsque la page serveur saute (Server.Execute/Server.Transfer), nous pouvons utiliser HttpContext.Current.Items pour transmettre des données entre les deux formes.
Évidemment, si vous changez Server.Transfer en Response.Redirect, vous ne pourrez pas obtenir les données dans HttpContext.Current.Items dans la nouvelle page car il s’agit d’une requête Http différente. System.NullReferenceException : La référence objet n’est pas définie sur l’instance de l’objet.





Précédent:20 minutes pour émettre une monnaie virtuelle basée sur le réseau Ethereum
Prochain:Réfléchir aux scénarios d’utilisation et à l’importance des terminaux intelligents
 Propriétaire| Publié sur 30/06/2023 20:35:38 |
ASP.NET la différence entre ThreadStatic, CallContext et HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com