安全协议上的按位或

时间:2018-07-13 21:26:03

标签: c# .net security tls1.2

我在我们使用的一个.NET应用程序中遇到了这个问题,并且想知道它的实际作用。

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

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

它与安全协议有什么关系?

1 个答案:

答案 0 :(得分:1)

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

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

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

正在Tls12的{​​{1}}属性上为ServicePointManager设置标志。

SecurityProtocol文档中有关于此属性的说明,

  

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

您可以阅读有关FlagsAttribute的更多信息,以了解有关按位运算符如何与SecurityProtocol进行交互的更多信息,

  

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