[WCF安全系列]绑定、安全模式与客户端凭证类型:总结篇

对于常用的几种绑定类型,它们都支持怎样的安全模式,以及针对各种安全模式可以采用怎样的认证方式(通过客户端凭证类型决定),这些都在前面的一系列文章中进行了详细的介绍。接下来我们通过表格的形式对不同类型的系统预定义对不同的安全模式进行一下总结。

一、系统预定义绑定对不同安全模式的支持

下面的表格表示系统预定义绑定对不同安全模式的支持(WSHttpBinding与WS2007HttpBinding具有相同的安全模式支持策略,这里仅仅列出了WSHttpBinding)。

BasicHttpBinding

WSHttpBinding

WSDualHttpBinding

NetNamedPipeBinding

NetTcpBinding

NetMsmqBinding

None

Default

Yes

Yes

Yes

Yes

Yes

Transport

Yes

Yes

No

Default

Default

Default

Message

Yes

Default

Default

No

Yes

Yes

Mixed

Yes

Yes

Yes

No

Yes

No

Both

No

No

No

No

No

Yes

TransportCredentialOnly

Yes

No

No

No

No

No

针对这个表格,我们可以看出:

  • 所有的绑定都可以不采用任何的安全传输机制,即支持None安全模式;
  • BasicHttpBinding的默认模式为None,WS相关的绑定默认模式为Message,而局域网相关绑定的模式模式为Transport;
  • 除了NetNamedPipeBinding,所有的绑定都支持Message安全模式;
  • 对于所有支持Message模式的绑定,除了NetMsmqBinding都支持Mixed模式;
  • 除了WSDualHttpBinding,所有的绑定都支持Transport模式;
  • 只有BasicHttpBinding支持TransportCredentialOnly模式;
  • 只有NetMsmqBinding支持Both安全模式。

二、系统预定义绑定对不同Transport客户端凭证的支持

接下来我们来比较一下对应我们之前介绍的这些常用的系统定义绑定在采用Transport安全模式下,对客户端凭证类型集的支持有何不同。

BasicHttpBinding

WSHttpBinding

WSDualHttpBinding

NetNamedPipeBinding

NetTcpBinding

NetMsmqBinding

None

Default

Yes

-

No

Yes

No

Basic

Yes

Yes

-

No

No

No

Digest

Yes

Yes

-

No

No

No

Windows

Yes

Default

-

Default

Default

Default

Ntlm

Yes

Yes

-

No

No

No

Certificate

Yes

Yes

-

No

Yes

No

从下面的表格反映的数据我们可以看出:

  • 三种基于HTTP的绑定(不包括不支持Transport安全模式的WSDualHttpBinding)支持所有类型的客户端凭证(实际上客户端凭证类型都是通过枚举HttpClientCredentialType表示);
  • 除了BasicHttpBinding在默认的情况下None作为客户端凭证类型(匿名客户端)之外,其它绑定的默认客户端凭证类型都是Windows;
  • NetTcpBinding支持三种客户端凭证类型None、Windows和Certificate;
  • NetNamedPipeBinding和NetMsmqBinding支持唯一的客户端凭证类型Windows。

三、系统预定义绑定对不同Message客户端凭证的支持

而不同的绑定针对于Message模式(或者Mixed模式)下的客户端凭证类型的支持就非常清晰了。因为除了BasicHttpBinding采用BasicHttpMessageCredentialType枚举表示其支持的客户端凭证类型之外,其它所有的绑定(不包括不支持Message安全模式的NetNamedPipeBinding)都使用MessageCredentialType表示客户端凭证类型,并且。在Message模式下,不同类型的绑定对不同客户端凭证类型集的支持反映在下面的表格中。

BasicHttpBinding

WSHttpBinding

WSDualHttpBinding

NetNamedPipeBinding

NetTcpBinding

NetMsmqBinding

None

No

Yes

Yes

-

Yes

Yes

User Name

Default

Yes

Yes

-

Yes

Yes

Windows

No

Default

Default

-

Default

Default

Certificate

Yes

Yes

Yes

-

Yes

Yes

IssuedToken

No

Yes

Yes

-

Yes

Yes

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据-Hadoop、Spark

Spark远程调试

start-all.sh -> start-master.sh -> start-slaves.sh 1.Master启动的脚本 start-master....

45570
来自专栏代码GG之家

SDL系列讲解(二) 环境搭建

准备环境 这一节,我们讲解下如何搭建SDL 的 Android开发环境。我们当前的电脑环境为: 系统 Window 7 64位 内存 8...

27850
来自专栏程序员的SOD蜜

使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)

1,示例解决方案介绍 在上一篇 《消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现》中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看...

34690
来自专栏我思故我在

ABP框架 - 我的第一个Web API

41480
来自专栏Laoqi's Linux运维专列

Apache访问日志+不记录静态文件

Apache访问日志 : 访问日志:顾名思义就是当有人访问咱们的站点,就会被记录些信息!其实这个还是蛮重要,尤其是站点受到攻击,直接命令的日志可以让我们迅速找到...

39350
来自专栏专注研发

PageHelper分页插件及通用分页js

物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的...

56610
来自专栏Coding01

推荐代码调试工具 Xdebug

写代码总绕不过需要调试,除了 UnitTest 外,我们还是需要借助 Xdebug 进行调试。

15230
来自专栏Laoqi's Linux运维专列

mysql一主多从同步架构配置

55390
来自专栏乐沙弥的世界

配置共享服务器模式

两者完成相同的任务,即处理所有指定的SQL操作。假定从客户端提交一个任意查询(DQL)到数据库服务器不论是专用模式还是共享

30730
来自专栏自由而无用的灵魂的碎碎念

用IE打开Reporting Service时提示权限不足的解决方法

在IE中打开http://localhost/ReportServer时,经常提示“为用户“*”授予的权限不足,无法执行此操作。 (rsAccessDenied...

16640

扫码关注云+社区

领取腾讯云代金券