En este artículo, analizaremos varios métodos de transferencia de datos entre páginas ASP.NET. Esperamos que esto pueda ayudar a todos a comprender correctamente la utilidad y conveniencia de la transferencia de datos entre páginas ASP.NET.
0. Introducción
Las páginas web no tienen estado. El servidor considera que cada solicitud proviene de un usuario diferente. Por lo tanto, el estado de las variables no se mantendrá entre múltiples solicitudes consecutivas para la misma página o cuando la página salte. Al diseñar y desarrollar un sistema web con ASP.NET, un problema importante que se encuentra es cómo garantizar que los datos se transmitan de manera correcta, segura y eficiente entre páginas. Asp.net proporciona una variedad de tecnologías, como la gestión del estado, para resolver el problema de la preservación. y transmisión Con respecto a los problemas de datos, exploremos los diversos métodos para resolver este problema en .NET y sus respectivas ocasiones aplicables.
1. Varios métodos y análisis de transferencia de datos entre páginas ASP.NET.
1.1 Usando el método Querystring
QueryString también se denomina cadena de consulta. Este método agrega los datos que se transferirán al final de la dirección de la página web (URL) y los transfiere. Por ejemplo, para saltar de la página A.aspx a la página B.aspx, puede usar el método Request.Redirect("B.aspx? Nombre del parámetro = valor del parámetro"), o puede usar el hipervínculo:, después de que la página salte , estará disponible en la página de destino. Ruquest["nombre del parámetro"] para recibir parámetros. La ventaja de utilizar el método QuerySting es que es fácil de implementar y no utiliza recursos del servidor; la desventaja es que el valor pasado se mostrará en la barra de direcciones del navegador, con el riesgo de ser manipulado y el objeto no puede ser manipulado; pasado. La cadena de consulta solo se puede utilizar cuando es posible solicitar la página a través de la URL.
1.2 Utilizando campos ocultos
Los campos ocultos no se mostrarán en el navegador del usuario. Generalmente, se agrega un control oculto a la página Al interactuar con el servidor, el valor se asigna al control oculto y se envía a la página siguiente. Un dominio oculto puede ser un depósito de cualquier información almacenada en una página web que sea relevante para la página web. Cuando utilice un campo oculto para almacenar un valor, utilice: control.valor oculto=valor numérico. Cuando extraiga un valor recibido, utilice: variable=valor.control oculto. La ventaja de utilizar campos ocultos es que son fáciles de implementar. Los campos ocultos son controles HTML estándar y no requieren una lógica de programación compleja. Los campos ocultos se almacenan y leen en la página, no requieren ningún recurso del servidor y casi todos los navegadores y dispositivos cliente admiten formularios con campos ocultos. La desventaja es que tiene pocas estructuras de almacenamiento y solo admite estructuras de datos simples. La capacidad de almacenamiento es pequeña porque se almacena en la página misma, por lo que no puede almacenar valores más grandes y los firewalls y servidores proxy bloquearán grandes cantidades de datos.
1.3 Ver estado
ViewState es un campo de formulario oculto administrado por el marco de páginas ASP.NET. Cuando ASP.NET ejecuta una página, los valores de ViewState y todos los controles de la página se recopilan y formatean en una cadena codificada, y luego se asignan a la propiedad Valor del campo de formulario oculto. Cuando utilice ViewState para transferir datos, puede utilizar: ViewState ["nombre de variable"]=valor numérico. Al recuperar datos, utilice: variable=ViewState["nombre de variable"]. Las ventajas de usar ViewState son: los valores se retienen automáticamente entre múltiples solicitudes para la misma página, no se necesitan recursos del lado del servidor y la implementación es simple. Los valores en el estado de vista están comprimidos y codificados. codificados para la implementación Unicode, y su seguridad requiere mayor que usar un campo oculto, la desventaja es que debido a que ViewState se almacena en la página misma, si se almacena un valor mayor, el usuario puede verse más lento al mostrar la página y enviarla. . Aunque el estado de vista almacena datos en formato hash, aún puede ser manipulado.
1.4 Uso de cookies
Las cookies pueden transferir una pequeña cantidad de información entre páginas y pueden almacenarse en un archivo de texto en el cliente o en la memoria del cliente. El método de cookies es adecuado para almacenar información que cambia con frecuencia en una pequeña cantidad de páginas, como guardar nombres de usuario de inicio de sesión para sitios web registrados, brindar comodidad para la entrada del usuario y guardar la configuración personalizada de los usuarios en algunos elementos definidos por el usuario. Disponible cuando se utilizan cookies para transferir datos: Response.Cookies["nombre de clave"]=valor clave para recuperar datos: nombre de variable=Request.Cookies["nombre de clave"]. Las ventajas de utilizar cookies son: Las cookies se almacenan en el cliente, no utilizan recursos del servidor, son sencillas de implementar y pueden configurar el tiempo de caducidad. Desventajas: la cantidad de datos que se pueden almacenar es relativamente pequeña. Dado que las cookies no son compatibles con todos los navegadores y los usuarios pueden prohibirlas o eliminarlas, no se pueden utilizar para guardar datos críticos. Además, las cookies se almacenan en texto sin formato y no es apropiado almacenar en ellas datos confidenciales y no cifrados.
1.5 Uso de variables de aplicación
Las variables de aplicación también se pueden utilizar para transferir valores entre páginas. Las variables de aplicación son globales y todos los usuarios comparten una variable de aplicación. Una vez definida, afectará a todas las partes del programa. Si desea utilizar un determinado valor de variable en toda la aplicación, el objeto Aplicación sería la mejor opción. Al almacenar datos, agregue el valor a la variable de la Aplicación: Aplicación["nombre de la variable"]=valor numérico; utilícelo para recuperar datos: variable=Aplicación["nombre de la variable"]; cuando no necesite usar la Aplicación, borrela; explícitamente: Aplicación ["nombre de cantidad"] = nulo.
Ventajas de la aplicación: Fácil de usar, alcance global. Disponible para todas las páginas de la aplicación. Desventajas: si el proceso del lado del servidor que guarda los datos está dañado (por ejemplo, debido a una falla, actualización o apagado del servidor), los datos se perderán, por lo que debe tener una estrategia garantizada cuando la aplicación ocupa la memoria del lado del servidor; , lo que puede afectar el rendimiento del servidor y la escalabilidad de la aplicación.
1.6 Usando variables de sesión
Los objetos de sesión se pueden utilizar para almacenar información sobre conversaciones específicas que deben mantenerse. Diferentes clientes generan diferentes objetos de sesión. La sesión se utiliza para almacenar información a corto plazo específica de una sesión individual. El uso y formato de Sesión son los mismos que los de Aplicación.
Ventajas: es fácil de implementar, proporciona alta seguridad y durabilidad, puede hacer frente al reinicio de IIS y al reinicio del proceso auxiliar y se puede utilizar en múltiples procesos. La desventaja es que consume memoria del lado del servidor. Así que no almacene mucha información. El uso más común de Session es proporcionar funciones de identificación de usuario a aplicaciones web junto con Cookies. Las sesiones también se pueden usar en navegadores que no admiten cookies. Sin embargo, el uso de una sesión sin cookies requiere colocar el identificador de sesión en la cadena de consulta, lo que también presenta los problemas de seguridad indicados en la sección de cadena de consulta de este artículo.
1.7 Usar propiedades estáticas de clases
Este método utiliza las propiedades estáticas de la clase para transferir valores entre dos páginas. Defina una clase que contenga atributos estáticos; asigne el valor a transferir al atributo estático; la página de destino puede obtener el valor a transferir en la página de origen a través del atributo estático.
La ventaja es que puede transmitir fácilmente varios datos, pero la desventaja es que requiere programación adicional, aumenta la carga de trabajo de programación y ocupa memoria del servidor.
1.8 Usando Server.Transfer
Al transferir el flujo de ejecución del archivo ASPX actual a otra página ASPX en el mismo servidor a través del método Server.Transfer, los datos del formulario o la cadena de consulta se pueden conservar. El método consiste en establecer el segundo parámetro del método en True. la primera página usa Server.Transfer("nombre de la página de destino.aspx", verdadero); la página de destino usa: Ruquest.Form["Nombre de control"] o Ruquest.QueryString["Nombre de control"] para recuperar datos. También se puede usar en Asp.net2.0 así, el código es el siguiente:
Página anterior pág1;
pg1=(Página anterior)Context.Handler;
Respuesta.Escribir(pg1.Nombre);
Explicación: este código se utiliza para recuperar el valor pasado de la página de destino. Página anterior es el nombre de clase de la página original, Nombre es el atributo definido en la página original y los datos que deben transferirse se almacenan en esta. atributo.
Con este método, debe escribir código para crear algunas propiedades para poder acceder a ellas desde otra página. Puede acceder al valor como una propiedad de objeto en otra página. Este método es particularmente útil para pasar valores entre páginas. Este método no sólo es simple, sino también orientado a objetos.
1.9 Caché
La caché tiene potentes funciones de operación de datos. Almacena datos en forma de una colección de pares clave-valor que se pueden insertar y recuperar especificando palabras clave. Sus capacidades de terminación basadas en dependencias le permiten controlar con precisión cómo se actualizan y eliminan los datos en el caché de manera oportuna. Puede realizar la gestión de bloqueos internamente y no necesita utilizar los métodos Lock() y Unlock() para la gestión de serialización como el objeto Aplicación. La desventaja es que el método de uso es complicado y un uso inadecuado reducirá el rendimiento.
2. Métodos de transferencia de valor que se pueden utilizar en diferentes situaciones de salto de página.
2.1 Escenario 1: la página de origen puede saltar a la página de destino y la página de origen pasa datos a la página de destino.
El uso de cadenas de consulta es un método simple y de uso común para transferir una pequeña cantidad de información de una página a otra y no hay problemas de seguridad; use el método Server.Transfer para pasar datos de formulario o cadenas de consulta a otra página. el HttpContext de la página inicial. Este método se puede utilizar cuando la página de destino y la página de origen están en el mismo servidor.
2.2 Caso 2: La página pasa el valor a su propia página
Es decir, al retener los valores en múltiples solicitudes para la misma página, la propiedad ViewState proporciona funcionalidad con seguridad básica. Los campos ocultos también se pueden utilizar para almacenar una pequeña cantidad de información de la página que se publica en ella misma o en otra página, y se utilizan cuando no se consideran cuestiones de seguridad.
2.3 Caso 3: la página de origen pasa valores a la página de destino, pero la página de origen no se puede conectar directamente a la página de destino.
Existen varios métodos y cuál utilizar depende de la situación específica.
Aplicación: almacena información global que utilizan varios usuarios y cambia con poca frecuencia, cuando la seguridad no es un problema. No almacene grandes cantidades de información. Sesión: almacena información a corto plazo que es específica de una sesión individual y requiere alta seguridad. No almacene grandes cantidades de información en el estado de sesión. Tenga en cuenta que los objetos de estado de sesión se crean y mantienen durante la vida de cada sesión en la aplicación. En aplicaciones que admiten muchos usuarios, esto puede consumir importantes recursos del servidor y afectar la escalabilidad.
Cookies: Se utilizan cuando se necesita almacenar una pequeña cantidad de información del lado del cliente y no existen problemas de seguridad. Los atributos estáticos de la clase facilitan la transmisión de múltiples datos.
Caché: objeto para un solo usuario, un grupo de usuarios o todos los usuarios. Los datos se pueden guardar para múltiples solicitudes durante mucho tiempo y de manera eficiente. Los métodos anteriores no solo se utilizan en el caso tres, sino también en los dos casos anteriores. Utilícelos lo menos posible cuando sea innecesario, de lo contrario provocará un desperdicio de recursos o aumentará la complejidad del programa.