在前面两篇(《绑定、安全模式与客户端凭证类型:BasicHttpBinding》和《绑定、安全模式与客户端凭证类型:WSHttpBinding与WSDualHttpBinding》)中,我们详细地介绍了四种基于HTTP的绑定分别支持的安全模式,已经在相应的安全模式下可以采用怎样的客户端凭证。在本篇文章中,我们安全线相同的方式来介绍三种基于局域网的绑定,即NetNamedPipeBinding、NetTcpBinding与 NetMsmqBinding。
NetNamedPipeBinding只能用于同一台机器上的不同进程之间的通信(IPC:Inter-Process Communication)。在IPC这样的通信场景下,根本不需要基于Message模式的安全。所以在表示NetNamedPipeBinding安全的NetNamedPipeSecurity类型中,表示支持的安全模式的Mode属性对应的NetNamedPipeSecurityMode枚举仅仅具有两个选项:None和Transport。在默认的情况下,NetNamedPipeBinding采用Transport安全模式。
此外还有一点值得一提:表示Transport模式安全的NamedPipeTransportSecurity类并不存在ClientCredentialType属性,因为它总是采用Windows作为其客户端凭证。NetNamedPipeBinding安全相关的应用编程接口如下面的代码片断所示。
class NetNamedPipeBinding : Binding, IBindingRuntimePreferences
2: {
//其他成员
public NetNamedPipeSecurity Security { get; set; }
5: }
class NetNamedPipeSecurity
7: {
//其他成员
public NetNamedPipeSecurityMode Mode { get; set; }
public NamedPipeTransportSecurity Transport { get; set; }
11: }
enum NetNamedPipeSecurityMode
13: {
14: None,
15: Transport
16: }
class NamedPipeTransportSecurity
18: {
//不存在ClientCredentialType属性
20: }