我们有两个运行.NET 4.5.1的服务器和一个运行.NET 4.0的服务器。在更新前两个之前,我们的表单身份验证SSO工作正常。现在,用户将在前两个服务器上显示身份验证,但未在.NET 4.0框中进行身份验证。
所有机器密钥,解密密钥,cookie域等都是相同的。没有修改代码。我们只是将4.5.1更新应用于这两个服务器。
我注意到4.0服务器,虽然我们的身份验证cookie被传递,但它没有被代码识别(我在网站上扔了一个测试页并输出了一些变量)。
机器密钥加密是否在4.0和4.5.1之间变化?我需要申请一些补丁吗?感谢。
答案 0 :(得分:4)
4.5中的加密API已更改,请参阅此博客文章了解更多详细信息 - http://blogs.msdn.com/b/webdev/archive/2012/10/23/cryptographic-improvements-in-asp-net-4-5-pt-2.aspx
根据MS,简单地升级到4.5不会影响应用程序,除非web.configs已经更改为目标4.5,这在您的情况下似乎很奇怪。您可以尝试将此属性添加到每个web.config以强制.NET 2.0兼容性 -
<machineKey compatibilityMode="Framework20SP1" />