Как прочитать метки времени IE Cookie как DateTime? - PullRequest
0 голосов
/ 22 июля 2011

Я пытался прочитать файл cookie IE, используя C #

Я застрял с тем, как прочитать дату и время внутри файла.

Они делят дату и время на 2 строки, как это

481435648

30298937

или

1100239232

30151908

Я перепробовал все методы, чтобы преобразовать это время в удобочитаемую дату, но мне не удалось.Я читал о FileTime, наносекундах и тиках, и никто из них не дал мне правильного пути.

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Согласно этой записи есть только одно поле для даты истечения срока действия (второе может быть значением cookie?), И чтобы прочитать его, вы можете использовать что-то вроде

DateTime expires = new DateTime(1970, 1,1).AddSeconds(secondsFromCookie);
Console.WriteLine(expires);

Вышеуказанное применимо только для формата файлов cookie netscape. Для IE используйте

        int eLow = 481435648;
        int eHigh = 30298937;
        double seconds = 1e-7*(eHigh*Math.Pow(2, 32) + eLow) - 11644473600;
        DateTime expires = new DateTime(1970, 1, 1).AddSeconds(seconds);

Источник формулы

0 голосов
/ 06 июня 2012

Я закончил с этим:

long leastSignificant = 481435648;
long mostSignificant = 30298937;
var fileTime = (mostSignificant << 32) + leastSignificant;

DateTime cookieTime = DateTime.FromFileTimeUtc(fileTime);
...