de
cookies entre dominios parece ser un problema simple, porque solo necesita especificar el atributo Dominio como el nombre de dominio raíz del sitio web especificado. Sin embargo, el autor encontró algunos problemas durante el uso real, que de hecho vale la pena mencionar.
Cookie en el nombre de dominio principal www Créela y escriba el atributo de Dominio, como por ejemplo: (Para facilitar la depuración, los siguientes códigos son todos códigos ASP)
Write.asp
código de programa
<%
Response.Cookies(NombreDeCookie)("Nombre De Usuario") = "SunBird"
Response.Cookies(NombreDeCookie)("Contraseña") = "xyz1234"
Respuesta.Cookies(NombreCookie).Dominio = "xxxx.com"
%>
Read.asp
para leer cookies se coloca en el mismo directorio.
código de programa
<%
Respuesta.Solicitud de escritura.Cookies(Nombre de cookie)("Nombre de usuario")
Respuesta.Solicitud de escritura.Cookies(Nombre de la cookie)("Contraseña")
%>
Luego coloque un documento Read.asp en otro sitio de subdominio, con el mismo código que el anterior. Finalmente, creamos otro Clear.asp para borrar las cookies y lo colocamos bajo el nombre de dominio principal
Clear.asp.
código de programa
<%
Response.Cookies(NombreDeCookie)("Nombre De Usuario") = ""
Response.Cookies(NombreDeCookie)("Contraseña") = ""
Respuesta.Cookies(NombreCookie).Dominio = "xxxx.com"
%>
Ahora puede probarlo mediante la siguiente secuencia de ejecución, Write.asp-->Read.asp del nombre de dominio principal-->Read.asp del nombre de subdominio. Cualquier página Read.asp puede leer el valor de la cookie creada por. Write.asp Luego ejecute Clear.asp para borrarlo, todo está bien, http://bizhi.downcodes.com/ parece no tener ningún problema.
Pero existen problemas al aplicar este método a sitios reales.
Descripción del problema:
Todo está bien al iniciar sesión por primera vez. Cualquier nombre de subdominio puede acceder a las cookies almacenadas en el nombre de dominio principal. Sin embargo, una vez que cierra sesión, las cookies del nombre de subdominio se borran, pero las cookies del principal. El nombre de dominio aún se conserva. El nombre de dominio principal se borra a la fuerza. Después de configurar la cookie, no importa cómo inicie sesión en el nombre de dominio principal, la cookie no se puede guardar a menos que cierre el navegador y lo vuelva a abrir.
Después de muchos intentos, descubrí accidentalmente el problema. El siguiente es el proceso de prueba.
Cree una página Write2.asp y colóquela bajo el nombre de dominio principal
código de programa
<%
Response.Cookies(NombreCookie)("TEST_COOKIE") = "TEST_COOKIE"
%>
Paso 1: Después de cerrar el navegador, ejecute en el siguiente orden: Write.asp-->Read.asp del nombre de dominio principal-->Read.asp del nombre de subdominio Cualquier Read.asp aquí se lee normalmente.
Paso 2: Clear.asp-->Read.asp del nombre de dominio principal-->Read.asp del nombre de subdominio La operación de limpieza se realiza correctamente aquí.
Paso 3: Write.asp --> Write2.asp --> Nombre de dominio principal Read.asp --> Nombre de subdominio Read.asp En este punto, ambos Read.asp pueden leer el valor de la cookie.
Paso 4: Vuelva a ejecutar el paso 2 y descubra que el nombre de dominio principal Read.asp todavía genera el valor, mientras que el valor de Read.asp bajo el nombre del subdominio se ha borrado.
Con base en la prueba anterior, resumimos los siguientes puntos a los que debe prestar atención al usar cookies en todos los dominios:
1. Cuando tiene un grupo de cookies (o diccionario de cookies) y usa el atributo Dominio para especificar el nombre de dominio, cuando modificar o agregar nuevos miembros al grupo Al agregar, asegúrese de agregar el atributo Resonse.Cookies(CookieName).Domain después de la operación.
2. Si no es necesario, no modifique el grupo de cookies del dominio configurado. Utilice directamente Response.Cookies("CookieText") = CookieValue para crear una nueva cookie.