Слишком большой зашифрованный билет FormsAuthenticationTicket, содержащий только 978 символов пользовательских данных - PullRequest
0 голосов
/ 28 июня 2019

У меня есть проект, использующий членство в ASP.NET, и я пытаюсь сохранить веб-токен Json в составе файла cookie членства. Длина этого токена составляет 1134 байта.

Я добавил это в FormsAuthenticationTicket в качестве параметра UserData. Сгенерированный файл cookie не будет распознан, и я понял, что при вызове FormsAuthentication.Encrypt возвращается строка длиной более 4096 символов.

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

enter image description here

Есть ли обходной путь к этому? Могу ли я перейти на альтернативный механизм шифрования, который позволяет увеличить размер UserData?

Если это уместно, здесь есть элемент machineKey в файле web.config.

<machineKey
    compatibilityMode="Framework45"
    validationKey="<128 alphanumeric characters>"
    decryptionKey="<64 alphanumeric characters>"
    validation="SHA1"
    decryption="AES"
/>

Интересно, что у меня есть более новое приложение ASP.NET MVC, которое использует CookieAuthentication. Я включил JWT того же размера, что и заявка пользователя. Длина файла cookie .ApNet.ApplicationCookie составляет всего 2262 байта.

...