【1】问题描述:
一般WCF默认很多绑定是使用安全的,一般不是Transport(TcpBinding)就是Message(WSHttpBinding)安全模式。
而且会对客户端启用身份验证。 因为WCF安全设置与开发比较麻烦,所以大部分开发人员希望不启用安全模式。 那么如何做呢?
【2】参考配置:
服务端首先可以设置SecurityMode=“None”。这个可以通过配置文件,也可以通过代码来实现。这里给出配置文件的方式。参考代码:
<wsHttpBinding>
<binding
name="bindingConfiguration">
<security mode="None">
<transport clientCredentialType="None"/>
<message
clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
另外这里还要把这个绑定用到对应的Endpoint的配置上:
bindingConfiguration="bindingConfiguration"
例子如下:
<endpoint
address="WCFService"
binding="wsHttpBinding"
bindingConfiguration="bindingConfiguration"
contract="WCFService.IWCFService">
</endpoint>
【3】Client配置: 客户端配置 也要与之对应,最好重新添加服务引用。更新客户端配置。 当然也可以自己手动更新,因为没有使用安全传输以及验证客户端。
所以客户端简化配置如下:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding
name="WSHttpBinding_IWCFService" />
<security
mode="None">
<transport
clientCredentialType="None" />
<message
clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://frank-xu2009:9001/WCFService"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IWCFService"
contract="ClientProxy.IWCFService"
name="WSHttpBinding_IWCFService" />
</client>
</system.serviceModel>