加密的FormsAuthenticationTicket太大,仅978个字符的用户数据

时间:2019-06-28 01:39:07

标签: encryption webforms asp.net-membership

我有一个使用ASP.NET成员资格的项目,并且我试图将Json Web令牌存储为成员资格cookie的一部分。该令牌的长度为1134个字节。

我将此作为UserData参数添加到FormsAuthenticationTicket中。生成的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"
/>

有趣的是,我有一个使用CookieAuthentication的较新的ASP.NET MVC应用程序。我已经包含了与用户要求相同大小的JWT。 .ApNet.ApplicationCookie cookie的长度仅为2262字节。

0 个答案:

没有答案