下图演示一个 Windows Communication Foundation (WCF) 服务和客户端。服务器需要一个有效的可用于安全套接字层 (SSL) 的 X.509 证书,并且客户端必须信任此服务器证书。此外,Web 服务已经有一个可以使用的 SSL 实现。有关 启用 Internet 信息服务 (IIS) 中的基本身份验证的更多信息,请参见 http://go.microsoft.com/fwlink/?LinkId=83822(可能为英文网页)。
特征 |
说明 |
安全模式 |
传输 |
互操作性 |
与现有的 Web 服务客户端和服务进行互操作 |
身份验证(服务器)
身份验证(客户端) |
是(使用 HTTPS)
是(通过用户名/密码) |
完整性 |
是 |
保密性 |
是 |
Transport |
HTTPS |
绑定 |
WSHttpBinding |
服务
下面的代码和配置将独立运行。执行下列操作之一:
- 使用代码(而不使用配置)创建独立服务。
- 使用提供的配置创建服务,但不定义任何终结点。
代码
下面的代码演示如何创建使用 Windows 域用户名和密码确保传输安全的服务终结点。请注意,此服务要求使用 X.509 证书向客户端进行身份验证。有关更多信息,请参见使用证书和如何:使用 SSL 证书配置端口。
配置
下面将配置一个服务以使用具有传输级安全的基本身份验证:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="UsernameWithTransport">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="BasicAuthentication.Calculator">
<endpoint address="https://localhost/Calculator"
binding="wsHttpBinding"
bindingConfiguration="UsernameWithTransport"
name="BasicEndpoint"
contract="BasicAuthentication.ICalculator" />
</service>
</services>
</system.serviceModel>
</configuration>
客户端
代码
下面的代码演示包括用户名和密码在内的客户端代码。请注意,此用户必须提供一个有效的 Windows 用户名和密码。此处不显示用于返回用户名和密码的代码。使用对话框或其他界面来查询用户的相关信息。
注意: |
用户名和密码只能使用代码进行设置。
|
配置
下面的代码演示客户端配置。
注意: |
不能使用配置来设置用户名和密码。此处显示的配置必须使用代码进行扩充以设置用户名和密码。
|
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_ICalculator" >
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://machineName/Calculator"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_ICalculator"
contract="ICalculator"
name="WSHttpBinding_ICalculator" />
</client>
</system.serviceModel>
</configuration>