首页 新闻 赞助 找找看

FormsAuthentication解密报错

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-02-01 17:06

以前的单点登录系统(a.xxx.com)使用的mvc3.0 ,令牌存储在formscookie中,cookie值使用了FormsAuthentication.Encrypt(authTicket)加密,设置了跨域(domain="xxx.com"),然后现在一个新的运营系统(b.xxx.com)使用的mvc5.0 当在配置文件中设置authentication节点并且是Forms模式,但是却无法获取到这个cookie,当我去掉authentication节点配置后却能获取到这个cookie了,但是当我当我使用FormsAuthentication.Decrypt(cacheTicket)解密时却报错了


[CryptographicException: 在执行加密操作时出错。]
   System.Web.Security.Cryptography.HomogenizingCryptoServiceWrapper.HomogenizeErrors(Func`2 func, Byte[] input) +178
   System.Web.Security.FormsAuthentication.Decrypt(String encryptedTicket) +792

问题补充:

通过fidder 抓包 可以看到 a.xxx.com 登录成功将 cookie A 写入了浏览器,并且在请求b.xxx.com时发送了这个cookie A 到b站点 但是b站点通过Request获取不到这个cookie,当我将web.config 节点

<authentication mode="Forms">... </authentication>

去掉时却可以获取到这个cookie,但是却解密报错了

逐雨的主页 逐雨 | 初学一级 | 园豆:184
提问于:2016-01-18 12:34
< >
分享
所有回答(3)
0

记得别人说过FormsAuthentication加密好像多台服务器会有问题

lb1208 | 园豆:371 (菜鸟二级) | 2016-01-18 13:14
0

解决了,<httpRuntime targetFramework="4.5" requestValidationMode="2.0" /> 将【targetFramework="4.5"】去掉 应该是.net framework 4.0和4.5 不兼容引起的

逐雨 | 园豆:184 (初学一级) | 2016-01-18 15:01

谢谢,终于解决了。

支持(0) 反对(0) PROS | 园豆:200 (初学一级) | 2016-08-24 08:10
0

楼主 同样的问题 修改httpRuntime 去掉targetFramework="4.5" 仍报错 无法验证数据。

黄昏夜咯 | 园豆:202 (菜鸟二级) | 2016-09-27 14:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册