Windows 消息安全
本示例演示如何将 WSHttpBinding 绑定配置为使用具有 Windows 身份验证的消息级安全性。此示例基于入门示例。在此示例中,服务由 Internet 信息服务 (IIS) 承载,客户端是一个控制台应用程序 (.exe)。
提示
本主题的最后介绍了此示例的设置过程和生成说明。
wsHttpBinding Element的默认安全性是使用 Windows 身份验证的消息安全。本示例中的配置文件将 security Element in wsHttpBinding的 mode
属性显式设置为 Message
,并将 clientCredentialType
属性显式设置为 Windows
。这些值是此绑定的默认值,但为了演示其用法,已对这些值进行了显式配置,如下面的示例配置所示。
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
客户端终结点配置由服务终结点的绝对地址、绑定和协定组成。该客户端绑定是使用相应的 securityMode
和 authenticationMode
配置的。
<configuration>
<system.serviceModel>
<client>
<endpoint address=
"https://localhost/servicemodelsamples/service.svc"
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
<bindings>
<wsHttpBinding>
<!--
<!--The default security for the WSHttpBinding is-->
<!--Message security using Windows authentication. -->
<!--This configuration explicitly defines the security mode -->
<!--as Message and the clientCredentialType as Windows -->
<!--for demonstration purposes. -->
<binding name="Binding1">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
为了演示如何使用 ServiceSecurityContext 来访问调用方的标识,服务源代码已进行了修改。
public string GetCallerIdentity()
{
// The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.
return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
}
运行示例时,操作请求和响应将显示在客户端控制台窗口中。调用的第一个方法 GetCallerIdentity
将调用方标识的名称返回给客户端。在控制台窗口中按 Enter 可以关闭客户端。
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照生成 Windows Communication Foundation 示例中的说明进行操作。
若要用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.