Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 17081|Antwort: 2

[ASP.NET] HttpContext.Current.Items

[Link kopieren]
Veröffentlicht am 11.02.2018 10:42:10 | | | |

HTTP ist ein zustandsloses Protokoll. Jede Anfrage ist unabhängig, und ihre Ausführung sowie Ergebnisse stehen nicht in direktem Zusammenhang mit der vorherigen Anfrage und der nachfolgenden Anfrage, und sie werden weder direkt von der Antwort auf die vorherige Anfrage noch direkt auf die Antwort auf die nachfolgende Anfrage beeinflusst.

Tatsächlich unterstützt unser System oft Nutzer, dieselben Daten (Zustand) zwischen dem Client-Browser und dem Server mit mehreren Anfragen zu teilen, wie zum Beispiel die Login-Kontoinformationen des Benutzers. Daher stellt ASP.NET viele Variablen zur Verwaltung des Zustands bereit: Anwendungszustand, Sitzungszustand, Ansichtszustand usw.

Das Objekt HttpContext ist nur für eine einzelne HTTP-Anfrage vorgesehen.Zu den Eigenschaften dieser Klasse gehören außerdem Request-Objekte, Response-Objekte, Session-Objekte usw. Dies ist die Items-Sammlung der HttpContext-Klasse, die ein Hash-Tabellenobjekt in Form eines Key-Value enthält.

Schauen wir uns zunächst den Zweck von HttpContext.Current.Items an, das nur auf einer einzigen Benutzeranforderung funktioniert (HttpContext.Current.Items gültig für eine einzelne HTTPRequest). Wenn diese Anfrage abgeschlossen ist, geht die Item-Sammlung verloren, wenn die Serverinformationen an den Browser zurückgesendet werden. Das Session-Objekt ist für die Sitzung des Benutzers, das heißt, es handelt auf mehrere Benutzeranfragen, und die Informationen gehen nach Ablauf der Sitzung verloren.

Da HttpContext.Current.Items einen so kurzen Lebenszyklus hat, unter welchen Umständen kann es verwendet werden? Es wird hier erwähnt, dass HttpContext.Current.Items beim Datenaustausch zwischen HttpModule und HTTPHandler verwendet werden kann, da jede Benutzeranfrage über die HTTP-Laufzeit-Pipeline HttpModule, HTTPHandler, läuft. Wenn Sie die IHttpMoudle-Methode implementieren, um Informationen über HttpMoudle an die Benutzeranfrage weiterzugeben. Sie können HttpContext.Current.Items verwenden, um Daten auf verschiedenen Anfrageseiten und in verschiedenen HttpModules zu übertragen, aber sobald die Anfrage endet und die Daten veröffentlicht sind, gehen die Daten in dieser Sammlung von selbst verloren. Wie in der folgenden Abbildung dargestellt:




Außerdem können wir beim Sprung der Serverseite (Server.Execute/Server.Transfer) HttpContext.Current.Items verwenden, um Daten zwischen den beiden Formularen zu übertragen.
Offensichtlich kannst du, wenn du Server.Transfer auf Response.Redirect änderst, die Daten in HttpContext.Current.Items auf der neuen Seite nicht abrufen, weil es sich um eine andere HTTP-Anfrage handelt. System.NullReferenceException: Die Objektreferenz ist nicht auf die Instanz des Objekts gesetzt.





Vorhergehend:20 Minuten, um virtuelle Währung basierend auf dem Ethereum-Netzwerk auszugeben
Nächster:Nachdenken über die Anwendungsszenarien und Bedeutung intelligenter Terminals
 Vermieter| Veröffentlicht am 30.06.2023 20:35:38 |
ASP.NET der Unterschied zwischen ThreadStatic, CallContext und HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com