4.0 框架应用程序和 2.0 框架应用程序之间的单点登录似乎已被破坏。
我有一个基于 asp.net Framework 2.0 构建的旧应用程序和一个基于 asp.net Framework 4.0 构建的新应用程序,我正在尝试在两者之间配置 SSO。
我已经完成了设置相同机器密钥的所有正确配置,具有相同的validationKey、decryptionKey、验证和解密属性以及相同的身份验证名称、域、保护和路径属性。
奇怪的是,这个配置在我的本地开发机器上运行良好:
- Windows 7 旗舰版(Service Pack 1)
- 在应用程序池中运行的 2.0 应用程序设置为 v2.0 集成
- 在应用程序池中运行的 4.0 应用程序设置为 v4.0 集成
但是,在部署服务器 Windows 事件日志中,我收到“请求的表单身份验证失败。原因:提供的票证无效。”:
- Windows Server 2008 R2 标准版(Service Pack 1)
- 在应用程序池中运行的 2.0 应用程序设置为 v2.0 集成
- 在应用程序池中运行的 4.0 应用程序设置为 v4.0 集成
我已经检查、重新检查、再重新检查部署计算机上的计算机密钥和身份验证配置,因此我确信这不是问题所在。
另外,只是为了论证,在部署服务器上,我什至尝试设置这两个应用程序形式保护=“无”只是为了看看加密是否是问题所在,结果仍然相同。
此外,在部署服务器上,配置了相同 SSO 设置的所有其他 v2.0 应用程序都没有问题。即使那些运行在不同的应用程序池中。简而言之,v2.0 到 v2.0 可以工作,而 v4.0 到 v2.0 则令人作呕。
有什么建议么?
经过几天的绝望,这行得通:在 4.0 web.config 配置标签中
<appSettings>
<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />
<add key="aspnet:UseLegacyEncryption" value="true" />
<add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />
</appSettings>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)