2009-05-14 2 views

ответ

19

Это не int int guid; от MSDN help file ...

На сессии идентификатор ASP.NET представляет собой сгенерированное случайным образом число кодируется в 24-символьной строки в состоящей из символов нижнего регистра от а до г и чисел от 0 до 5.

+5

... который делает это 120 бит. – teedyay

+0

Ответ не имеет отношения к тому, что задано здесь! Предполагалось просто размер вместо того, чтобы указывать, что генерируется с длиной строки ... Хотя это увеличивает чьи-то знания. –

+0

Когда я увидел этот вопрос, это был ответ, который я искал: «Идентификаторы сеанса - это 120-битное случайное число, которое представлено 20-символьной строкой» из [https://support.microsoft.com/en- нас/кб/899918] (https://support.microsoft.com/en-us/kb/899918) –

-2

Поскольку он сгенерирован как System.Guid Valuetype, это 128-битное целое число, которое составляет 16 байт.

+1

Это неверно. AFAIK, GUID были использованы в ASP Classic, но были сброшены в ASP.Net, потому что генерация GUID была слишком предсказуемой, и это привело к недостатку безопасности. – kervin

1

Я бы пошел с 88 байтами. Если вы посмотрите на базу данных состояния ASP.NET, вот как это определено.

4
в

Причиной для дополнительных 8 символов в базе данных по сравнению с тем, что вы получаете в коде, является идентификатор приложения. В базе данных сеанс добавляется с помощью параметра tempApplicationID из таблицы ASPStateTempApplications. Вот почему вы получаете 24 символа в коде и 32 в db.

Смежные вопросы