我有一个使用ASP.NET成员资格的项目,并且我试图将Json Web令牌存储为成员资格cookie的一部分。该令牌的长度为1134个字节。
我将此作为UserData
参数添加到FormsAuthenticationTicket中。生成的Cookie无法识别,我意识到对FormsAuthentication.Encrypt
的调用返回的字符串长于4096个字符。
我对UserData
进行了多种不同长度的测试,发现加密算法在大小方面效率低下,每个用户数据字符增加了四个字符。
对此有任何解决方法吗?我可以切换到允许更大的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字节。