¿Dónde se almacenan las cookies?

Estoy enviando una HTTPWebRequest desde el código C# y, en respuesta, recibo una cookie que contiene el ID de la sesión. No puedo ubicar la cookie en los miembros públicos/no públicos de respuesta. Sin embargo, fiddler está capturando la cookie y su ruta es "/". ¿Alguien puede decirme dónde debo buscar esta cookie? Revisé la carpeta "C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Cookies" y no está allí.

preguntado el 22 de mayo de 12 a las 12:05

Nota al margen: considere usar WebClient en lugar de HTTPWebRequest. Ver Usando WebClient y HttpWebRequest por los pros y los contras de ambos. -

4 Respuestas

Las cookies pueden almacenarse físicamente en diferentes ubicaciones, según el navegador.

Creo que es mejor que consigas el HttpWebRequest trabajar con galletas.

Ver la respuesta a esta pregunta con respecto a agregar un CookieContainer al objeto de la solicitud.

contestado el 23 de mayo de 17 a las 13:05

Obtuve lo que necesitaba... Gracias por la pronta respuesta... :) - Tejas

Cada navegador almacena cookies en diferentes ubicaciones Por ejemplo

La información de las cookies se almacena en la carpeta del perfil, en dos archivos. A partir de Firefox 3.0 y SeaMonkey 2.0, la información de las cookies se almacena en los archivos cookies.sqlite y permisos.sqlite. En Firefox 2 o anterior y Mozilla Suite/SeaMonkey 1.x, las cookies se almacenan en el archivo cookies.txt y los permisos del sitio de cookies se almacenan en el archivo hostperm.1. Descripción del archivo cookies.sqlite cookies.txt Contiene todas sus cookies, incluida la información de inicio de sesión, los datos de la sesión y las preferencias. permisos.sqlite hostperm.1 Tiene preferencias sobre qué sitios permite o prohíbe establecer cookies, mostrar imágenes, abrir ventanas emergentes e iniciar la instalación de extensiones.

contestado el 22 de mayo de 12 a las 12:05

El almacenamiento de cookies depende tanto de su navegador como de su sistema operativo. En navegadores más antiguos, simplemente se almacenaban en una ruta de archivo llamada algo así como "Cookies". La mayoría de los navegadores modernos almacenan cookies de alguna manera encriptada, generalmente en un archivo plano sqllite db. Si pudiera proporcionar más información sobre lo que está tratando de rastrear a través del almacenamiento de cookies local real (en lugar de usar el navegador de cookies integrado del navegador), ayudaría a obtener más información sobre dónde buscar o alternativas para lo que tiene en mente.

contestado el 22 de mayo de 12 a las 12:05

Si desea utilizar cookies persistentes con HttpWebRequest, deberá importar wininet.dll para manejar esto (o usted mismo maneja la persistencia).

Hay un ejemplo en MSDN en la sección Contenido de la comunidad para Método WebRequest.Create.

retazo

[DllImport("wininet.dll", CharSet=CharSet.Auto , SetLastError=true)] 
        private static extern bool InternetGetCookie (string url, string name, StringBuilder data, ref int dataSize);

private static string RetrieveIECookiesForUrl(string url)
{
    StringBuilder cookieHeader = new StringBuilder(new String(' ', 256), 256);
    int datasize = cookieHeader.Length;
    if (!InternetGetCookie(url, null, cookieHeader, ref datasize))
    {
        if (datasize < 0) 
            return String.Empty;
        cookieHeader = new StringBuilder(datasize); // resize with new datasize
        InternetGetCookie(url, null, cookieHeader, ref datasize);
    }
    // result is like this: "KEY=Value; KEY2=what ever"
    return cookieHeader.ToString();
}

contestado el 22 de mayo de 12 a las 12:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.