我从VS2013添加了一个WCF作为我的客户端应用程序的服务引用,它在app.config文件中生成了以下配置部分。
<security mode="Message">
<transport clientCredentialType="None" />
<message clientCredentialType="None" />
</security>
这是什么意思?安全模式是消息,但内部有单独的实体用于传输和消息。我很困惑。
答案 0 :(得分:3)
提供传输安全性有两个主要选择:要么在传输级别提供传输安全性,要么在消息级别提供传输安全性。
MSDN上有一篇很好的文章讨论了这个here。
运输安全:
使用传输安全性时,用户凭据和声明是 通过使用传输层传递。换句话说,用户凭据 是依赖于传输的,它允许更少的身份验证选项 与消息安全性相比。
邮件安全:
使用邮件安全性时,用户凭据和声明是 使用WS-Security规范封装在每条消息中 安全的消息。此选项提供了最大的灵活性 认证视角。您可以使用任何类型的安全性 你想要的凭证,基本上与运输无关,只要 客户和服务都同意。
每条评论更新
在您提供的配置文件的上下文中含义:
设置security mode
(在本例中为message
)后,您可以选择设置客户端凭据类型。客户端凭据类型属性指定客户端必须为服务提供哪种类型的凭据以进行身份验证。在这种情况下,如果将transport
或message
指定为security mode
,那么他们将使用None
作为客户端凭据类型,这意味着客户端不必提供任何凭证。
目前,由于message
是指定的security mode
,因此基本上会忽略以下行。
<transport clientCredentialType="None" />