我在我们使用的一个.NET应用程序中遇到了这个问题,并且想知道它的实际作用。
System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12;
我知道|=
运算符是x = x | y
的快捷方式,但这是按位运算符。
它与安全协议有什么关系?
答案 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
进行交互的更多信息,
位字段通常用于可能会组合出现的元素列表,而枚举常量通常用于互斥元素的列表。因此,位字段被设计为与按位或运算组合以生成未命名的值,而枚举常量则不是。与枚举常量相比,语言对位字段的使用有所不同。