FormsAuthentication.Decrypt 解密保存的登录cookie信息报错
在处理单点登录系统(比如a.xxx.com),使用的mvc开发的 ,令牌存储在formscookie中,cookie值使用了FormsAuthenticationTicket保存数据信息,采用FormsAuthentication.Encrypt(authTicket)加密,设置了共域参数(domain="xxx.com"),现在有一个新的站点子系统(b.xxx.com)需要接入, 当在配置文件中设置authentication节点并且是Forms模式,但是却无法获取到这个cookie,当修改authentication节点配置为None模式后就能获取到这个cookie了,但是当使用FormsAuthentication.Decrypt(cacheTicket)解密时却报错了
System.Security.Cryptography.CryptographicException: Error occurred during a cryptographic operation.
at System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors(Func`2 func, Byte[] input)
at System.Web.Security.FormsAuthentication.Decrypt(String encryptedTicket)
百度找了许多答案,如下列举大家可以尝试,但是我都尝试了不行
1、.net framework版本不兼容问题,多个系统的版本不一样导致,尝试了修改各个系统的版本,但是没有解决
2、authentication 验证model的问题,尝试了各个模式设置,没有解决
3、后来在本地测试,发现本地iis上是可以实现单点的,能成功读取cookie信息。
总结想了一下,可能是服务器系统环境或iis环境哪里有问题?但是不可能去动这些东西,服务器是不方便动的,后面就放弃了。
最后只能换一种实现方式,去掉了FormsAuthenticationTicket保存数据信息,直接json序列化后,采用aes加密方法,把信息设置到cookie中,最后解决。
上一篇: Apple Pay真的要来中国了?
推荐阅读
-
Django利用cookie保存用户登录信息的简单实现方法
-
FormsAuthentication.Decrypt 解密保存的登录cookie信息报错
-
php中使用cookie来保存用户登录信息的实现代码_php实例
-
php同时使用session和cookie来保存用户登录信息的实现代码_php实例
-
Django利用cookie保存用户登录信息的简单实现方法
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie
-
php中使用cookie来保存用户登录信息的实现代码_php实例
-
php中使用cookie来保存用户登录信息的实现代码_PHP
-
tracking cookie php中使用cookie来保存用户登录信息的实现代码