Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 17081|Respuesta: 2

[ASP.NET] httpContext.Current.Items

[Copiar enlace]
Publicado en 11/2/2018 10:42:10 | | | |

HTTP es un protocolo sin estado. Cada solicitud es independiente, y su ejecución y resultados no están directamente relacionados con la solicitud anterior ni con la siguiente, y no se verá afectada directamente por la respuesta a la solicitud anterior, ni afectará directamente la respuesta a la solicitud posterior.

De hecho, nuestro sistema suele permitir que los usuarios compartan los mismos datos (estado) entre el navegador cliente y el servidor múltiples solicitudes, como la información de la cuenta de inicio de sesión del usuario. Por lo tanto, ASP.NET proporciona muchas variables para gestionar el estado: estado de la aplicación, estado de sesión, estado de vista, etc.

El objeto HttpContext es solo para una única solicitud http.Las propiedades de esta clase también incluyen objetos Request, objetos Response, objetos Session, etc. Esta es la colección Items de la clase HttpContext, que contiene un objeto de tabla hash en forma de clave-valor.

Primero, veamos el propósito de HttpContext.Current.Items, que solo funciona con una solicitud de usuario (HttpContext.Current.Items válido para un único HTTPRequest). Cuando esta solicitud se completa, la colección de elementos se perderá cuando la información del servidor se envíe de vuelta al navegador. El objeto Sesión es para la sesión del usuario, es decir, actúa sobre múltiples solicitudes de usuario y la información se pierde tras expirar la sesión.

Dado que HttpContext.Current.Items tiene un ciclo de vida tan corto, ¿bajo qué circunstancias puede usarse? Se señala aquí que HttpContext.Current.Items puede usarse al compartir datos entre HttpModule y HTTPHandler, porque cada solicitud de usuario pasa por la canalización de ejecución HTTP HttpModule, HTTPHandler. Cuando implementas el método IHttpMoudle para pasar información a la solicitud del usuario a través de HttpMoudle. Puedes usar HttpContext.Current.Items para transferir datos en diferentes páginas de solicitud y distintos HttpModules, pero una vez que la solicitud termina y los datos se publican, los datos de esta colección se perderán por sí solos. Como se muestra en la siguiente figura:




Además, cuando la página del servidor salta (Server.Execute/Server.Transfer), podemos usar HttpContext.Current.Items para pasar datos entre los dos formularios.
Obviamente, si cambias Server.Transfer a Response.Redirect, no podrás obtener los datos en HttpContext.Current.Items en la nueva página porque es una solicitud Http diferente. System.NullReferenceException: La referencia al objeto no se establece como la instancia del objeto.





Anterior:20 minutos para emitir moneda virtual basada en la red Ethereum
Próximo:Reflexionando sobre los escenarios de uso y la importancia de los terminales inteligentes
 Propietario| Publicado en 30/6/2023 20:35:38 |
ASP.NET la diferencia entre ThreadStatic, CallContext y HttpContext
https://www.itsvse.com/thread-10620-1-1.html
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com