无法使用Global.asax的Application_Start中调用的以下代码来更新安全协议,(可能是因为CAS通信在到达此代码行之前就已经失败了)
removed_in_version
我在4.0框架中开发了.net应用程序,该应用程序预期将使用比TLS 1.2更早的安全协议。由于TLS问题,我的CAS身份验证未能重定向到我的应用程序。为了解决此问题,我确实在web.config中进行了有针对性的框架更改,如下所示。
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
但是上述解决方案导致了不同的问题。因此,现在我想弄清楚的是通过使用安全协议更新到1.2解决我的CAS问题。请帮助我如何处理我的情况。
答案 0 :(得分:0)
如果系统上安装了.NET 4.5或更高版本,则您发布的代码ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
应该可以正常工作,而无需更改应用程序针对的.NET框架。
如果不能在系统上升级.NET框架,则需要将SchUseStrongCrypto和SystemDefaultTlsVersions注册表项设置为1。
发件人:https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
对于.NET Framework 3.5-4.5.2而非WCF
我们建议您将应用程序升级到.NET Framework 4.7或更高版本。如果无法升级,请执行以下步骤。在将来的某个时候,您的应用程序可能会失败,直到您升级到.NET Framework 4.7或更高版本。
将SchUseStrongCrypto和SystemDefaultTlsVersions注册表项设置为1。请参阅通过Windows注册表配置安全性。仅当传递了显式TLS值时,.NET Framework 3.5版才支持SchUseStrongCrypto标志。