安全协议上的位或



我在我们使用的一个.NET应用程序中遇到了这个问题,我想知道它到底能做什么。

System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12;

我知道|=运算符是x = x | y的快捷方式,但它是按位运算符。

它在安全协议方面做了什么?

System.Net.ServicePointManager.SecurityProtocol属性是SecurityProtocolType枚举类型的属性。

System.Net.SecurityProtocolType.Tls12是SecurityProtocolType枚举上的可用标志之一。

System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12;

正在ServicePointManagerSecurityProtocol属性上设置Tls12的标志。

SecurityProtocol文档中有关于属性的注释

此属性选择安全套接字层(SSL(或传输层安全性(TLS(协议的版本,用于仅使用安全超文本传输协议(HTTPS(方案的新连接;现有连接不会更改。

您可以阅读更多关于FlagsAttribute的信息,以了解更多关于位运算符如何与enum交互的信息,其要点是

位字段通常用于可能组合出现的元素列表,而枚举常量通常用于互斥元素列表。因此,位字段被设计为与逐位OR运算相结合,以生成未命名的值,而枚举常量则不是。与枚举常量相比,语言对位字段的使用各不相同。

最新更新