无需更改 .NET 中的代码即可启用 TLS 1.2

2023-12-25

我有 .NET 4.5.2 应用程序正在使用SmtpClient发送电子邮件。该应用程序安装在Windows 2012 R2服务器上。当我禁用 TLS 1 和 TLS 1.1 并仅启用 TLS 1.2 时,应用程序停止发送邮件。我认为这是因为 .NET 4.5.2 不支持 v1.2。

我正在考虑以下步骤

1>在 Windows Server 上禁用 TLS 1 和 TLS 1.1,仅启用 TLS 1.2。
2>在Windows服务器上安装.NET 4.8。
3>将应用程序的目标框架更改为4.8(在csproj和web.config中)并重新编译。
4>部署应用程序。

问题
基于文档 https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls Starting with .NET Framework 4.7.1, WCF defaults to the operating system configured version
1>这仅适用于 WCF 还是 SMTP 也默认为操作系统配置的版本?
2>或者我需要明确设置版本吗System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
3>是否可以立即设置版本 TLS 1.2,并且将来 TLS 1.3 可用时应用程序应自动默认为 TLS 1.3? (无需再次更改代码)


这仅适用于 WCF 还是 SMTP 也默认为操作系统配置的版本?

No, 这适用于所有基于 SslStream 的 .NET Framework 网络 API https://learn.microsoft.com/en-us/dotnet/api/system.net.servicepointmanager.securityprotocol?view=netframework-4.8,其中包括 SMTP、HTTP 和 FTP。


或者我是否需要明确设置版本,例如 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

如果将应用程序编译为 .NET 4.7 或更高版本,则无需将值设置为System.Net.ServicePointManager.SecurityProtocol因为它将被设置为SystemDefault这意味着它将继承来自操作系统或系统管理员执行的任何自定义配置的默认安全协议。


是否可以立即设置版本 TLS 1.2,并且将来 TLS 1.3 可用时应用程序应自动默认为 TLS 1.3?

是的,你只需要检查是否System.Net.ServicePointManager.SecurityProtocol设置为其他任何不是SystemDefault(其值为0(零)在 .NET 4.7+ 中),在这种情况下,您可以将其设置为 TLS 1.2 来覆盖它。

var securityProtocol = (int)System.Net.ServicePointManager.SecurityProtocol;

// 0 = SystemDefault in .NET 4.7+
if (securityProtocol != 0)
{
    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需更改 .NET 中的代码即可启用 TLS 1.2 的相关文章

  • C++ 天花板函数的奇怪结果

    我一直在尝试天花板功能并得到一些奇怪的结果 如果我对十进制数乘以百执行 ceil 运算 我会得到一定的结果 但是 如果我直接对该乘法的结果执行 ceil 我会得到完全不同的输出 另一个问题是 这些不同的结果仅发生在某些数字上 任何帮助 将不
  • OpenGL,如何独立旋转对象?

    到目前为止我的代码 void display void glClear GL COLOR BUFFER BIT GL DEPTH BUFFER BIT Clear Screen And Depth Buffer glLoadIdentity
  • lambda 表达式到函数指针的转换

    这是这个问题的后续问题 Lambda 如何作为参数传递 https stackoverflow com questions 3321283 c0x lambda how can i pass as a parameter 据推测 MSDN
  • 子进程中的变量修改

    我正在研究科比和奥哈拉伦的作品Computer Systems A Programmer s Perspective 练习 8 16 要求程序的输出如下 我更改了它 因为他们使用了一个你可以在他们的网站上下载的头文件 include
  • 运行 C# exe 文件

    复制 为什么我的 NET 应用程序在从网络驱动器运行时会崩溃 https stackoverflow com questions 148879 why does my net application crash when run from
  • 用C#发送USSD?

    我想编写一个在 Windows Mobile 6 上运行的简单 C 应用程序 它可以发送 USSD 消息 有没有任何图书馆可以帮助我做到这一点 或者是否有任何示例解释如何使用线路发送USSD http msdn microsoft com
  • .NET Core 2 - 从启动中调用存储库方法[重复]

    这个问题在这里已经有答案了 我有以下存储库和类 public interface IValueService GetAll public class ValueService IValueService private DataContex
  • 析构函数、dispose 和 Finalize 方法之间的区别

    我正在研究垃圾收集器在 C 中的工作原理 我对使用感到困惑Destructor Dispose and Finalize方法 根据我的研究和理解 在我的类中拥有析构函数方法将告诉垃圾收集器以析构函数方法中提到的方式执行垃圾收集 该方法不能在
  • 如何使用 C# 调用 REST API?

    这是我到目前为止的代码 public class Class1 private const string URL https sub domain com objects json api key 123 private const str
  • WCF 客户端返回空数组 - XML 响应似乎正常

    我正在尝试为我们的 Intranet 上托管的 Web 服务创建一个简单的 WCF 客户端 C 使用 Fiddler 和 SoapUI 我可以看到请求和响应似乎正常 但是当我运行代码时返回一个空数组 我会尝试只粘贴相关的行 但会是很多东西
  • C++ 为非虚方法指定初始化

    我有 a h 如下所示 class A public void doSomething 0 然后我有 b h 如下所示 include a h class b public A public void doSomething 我只是想通过尝
  • 如何设置cookie值?

    我正在执行以下操作来设置 cookie 值 HttpCookie mycookie new HttpCookie mycookie mycookie Value value1 Case sensitivity mycookie Expire
  • Silverlight 4relativeSourceFindAncestor绑定[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Silverlight 4中会有Re
  • 向窗口句柄发送消息

    我尝试使用 sendmessage 将消息从我的 C 应用程序传递到 C 我的c 代码是这样的 int tmain int argc TCHAR argv COPYDATASTRUCT cpd cpd dwData 0 LPCWSTR st
  • 将数组显式衰减为指针

    最简洁 最惯用的方式是什么明确地将数组衰减为指针 例如 考虑您需要能够指导 SFINAE 或明确过载的情况 template
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • C# 的 xml 序列化中是否有一个属性可以跳过空数组?

    C 的 xml 序列化中是否有一个属性可以跳过空数组 这将提高 xml 输出的可读性 好吧 你也许可以添加一个ShouldSerializeFoo method using System using System ComponentMode
  • 仅最后一个用户控件显示内容控件

    我有一个奇怪的问题 我创建了一个带有标签和画布的用户控件 画布引用资源 但画布仅显示在我的堆栈面板中的最后一个控件上 这是我的窗户
  • 将 .NET 类库(主要定义 CRUD 操作)公开为服务

    公开现有内容的最佳 有效和最快的方法是什么 类 图书馆 主要定义 CRUD 操作 作为service 周转基金服务 or WCF数据服务 以便它可以与银光 or Ajax 在那儿tools 代码生成器 RAD 工具 哪些可以支持这个 预先感
  • 在运行时将项目添加到 ToolStrip

    您好 我有一个带有 收藏夹 菜单的 ToolStripMenu 我想在运行时在 WinForms 应用程序中添加子项目 我有一个 datagridview 右键单击它会显示一个包含 添加到收藏夹 选项的上下文菜单 当该事件被触发时 我想使用

随机推荐

  • 如何以编程方式检查 X509 证书是否已在 Java 信任库中?

    我正在开发一个客户端 GUI 它接受自签名服务器证书并将其添加到信任存储中 就像任何浏览器一样 问题是我的客户端应用程序每次启动时都会要求提供证书 换句话说 它不记得该证书已经在信任存储中 我该如何实施 这就是我编写信任存储文件的方式 pu
  • WPF 刷新绘图是否与 Windows 窗体类似?

    因此 如果我有一个 WPF 窗口 在 WPF 窗口上移动另一个窗口是否会导致 WPF 窗口像 Windows 窗体一样进行数千次重绘 我想知道在这种情况下使用矢量的效果 而不是像窗口窗体那样基于位图的一切 你可以看一下WPF架构 http
  • 如何处理WinRT异常导致的Exception?

    如果 Windows 运行时类型引发 COM 错误 NET 似乎经常 或总是 将此错误包装到一个Exception实例 错误消息包括 COM HRESULT 错误代码 例如 当将新的加密 API 与 AES CBC 一起使用时 错误的缓冲区
  • 如何向 ActionBar 添加 SearchWidget?

    我正在尝试将 Search ActionView 添加到我的应用程序中 如此处所述http developer android com guide topics search search dialog html UsingSearchWi
  • 如何使用 NativeScript + Angular 2 项目添加侧边菜单?

    我想知道如何在我当前的 NativeScript Angular 2 项目上添加侧面菜单 我知道它有一个侧面菜单模板 但我将其作为空白项目启动 我想知道如何添加此功能 您将需要使用 Telerik UI for NativeScript h
  • 如何将大型 XML 文件转换为类似 java 8 的流对象

    嘿 我有一个 非常 大的 XML 文件 100GB 其中包含 foo 列表 我想将其转换为流 就像它们引入 java 8 对象一样 对库或代码示例有什么想法吗 在开始时
  • 需要运行文件夹中所有命令的Windows命令文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 https www online tech tips com computer tips create windows batch f
  • 如何停止实体框架缓存

    我们在测试 Entity Framework 4 时遇到问题 我们部署了一个实现 EF 数据上下文的 WCF 服务 一切正常 直到我们使用 SQL Server Studio 修改数据 有没有办法停止 EF 缓存我们的结果 或者有没有办法打
  • 除了 Google App Engine 之外还有 Python 云托管吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 等待进程结束异步,然后调用主窗体中的函数

    我正在用 C 编写一个游戏编辑器 我的程序通过启动 notepad exe 进程以 txt 文件打开 如果该进程退出 我想调用主窗体中的函数 以更新文本框 这是我到目前为止正在做的事情 void OpenTextEditor TreeNod
  • 从大表读取时出现 java.lang.OutOfMemoryError

    我正在尝试从 PostgreSQL 中的一个非常大的表 300GB 预先生成报告 我做了这样的事情 rs stmt executeQuery SELECT FROM tbl System out println select all fin
  • jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到)

    我看到有关文件的错误消息 min map 未找到 GET jQuery 的 jquery 1 10 2 min map 正在触发 404 未找到 截屏 这是从哪里来的 如果 Chrome DevTools 报告 map 文件的 404 可能
  • 循环比较宏

    我已经使用 Word 完成了一个文本比较宏 我需要循环它 以便它可以在几组文档之间进行比较 关于如何做到这一点有什么想法吗 这是我的代码 Dim template1 As Word Document Dim spool1 As Word D
  • Sqlalchemy:查询多态类的 m2m 关系

    我有两个通过多对多关系连接的类 Parent and Tag Base declarative base association table Table associations Base metadata Column parent id
  • Proguard 在不混淆的情况下进行收缩和优化

    在我的应用程序中 我有库项目依赖项 其中包含许多未使用的方法字段和类 由于这是一个第三方库 我不想自己删除所有未使用的类和方法 因为它是未来的更新 我正在尝试为此使用混淆器 但是 dontobfuscate 只会将整个项目排除在任何优化 缩
  • PHP 编译器 xdebug 警告

    PHP 新手 从事 PHP 项目并启用 xdebug 以便能够调试我的 PHP 应用程序 生产服务器没有启用 xdebug 因为它是由另一个团队处理的 在我的本地计算机上 当我运行 Composer 时 它会给我一个警告 You are r
  • 当只有一个子项可用时,最后一个子项样式会覆盖第一个子项样式

    ul li first child a border radius 5px 5px 0 0 ul li last child a border radius 0 0 5px 5px 当只有一个子项时 最后一个子项样式将覆盖第一个子项样式 有
  • Mysql 容器无法在 Kubernetes 上启动

    我正在使用this https hub docker com layers bitnami mysql 5 7 images sha256 87d11d41343c5404073f13b555e2849db4cb975f10e9b84ff4
  • pcntl_fork 在 PHP 中如何工作?

    我很困惑pcntl fork http php net pcntl fork in PHP 我认为它具有多线程功能 但它是如何工作的以及如何在脚本中使用它 PCNTL 不能创建线程 它仅 分叉 当前的 PHP 进程 这是什么意思 你打电话时
  • 无需更改 .NET 中的代码即可启用 TLS 1.2

    我有 NET 4 5 2 应用程序正在使用SmtpClient发送电子邮件 该应用程序安装在Windows 2012 R2服务器上 当我禁用 TLS 1 和 TLS 1 1 并仅启用 TLS 1 2 时 应用程序停止发送邮件 我认为这是因为