视网膜屏幕,雅虎音乐,运动会的口号
在处理单点登录系统(比如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中,最后解决。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论