遇到个很奇怪的问题,项目中有2个网站,A网站基于.NET3.5开发,传统的Webform网站,该网站负责用户登录注册功能,用户登录后生成了用户票据,保存在cookie中。
然后B网站,MVC4.0,.NET4.5的新网站,无法验证该票据,断点后发现抛加解密错误异常,config中各个节点配置都是一致的MachineKey和authentication都一致。之后又新建一个C站点,.NET4.5的Webform站点,congfig配置再抄一次,该站点能正常解密票据验证用户,目前得到的结论是MVC搞出来的问题。有遇到过该问题的大神吗,求解。
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
系统自动的Form认证失败后自行解密验证,发现这句抛异常,说加解密失败,但是该句在C网站中正常运行,求解。。。
不同的网站,cookie是不一样的,是否设置了。
设置了,我在C站Form认证都成功了。
Mark一下,是不是因为解密的方式不一样?
把异常更详细的贴出来或工程
试试在两个网站设定相同的MachineKey 并显示指定相同的validation和decryption算法,
FormsAuthentication中指定相同的domain 和 forms name
然后清除所有cookie 再试试
在国外论坛已经得到了解答,是配置machinKey节点中的一个属性,该属性在msdn文档中没写,所以当时没找到,谢谢各位。
compatibilityMode="Framework20SP1"
具体哪个属性 写一下吧