【发布时间】:2011-05-11 12:32:25
【问题描述】:
我有一个在 IIS 6 和 WCF 上运行的 .Net 服务,我想为其创建两个端点。一个使用 HTTPS 和基本身份验证进行保护,可以从我们的 DMZ 访问,一个没有安全性的端点,只能从内部安全网络访问。防火墙和可能的 .Net 过滤器将确保在安全网络之外无法访问不安全的服务。
到目前为止,我还没有成功让两个端点使用不同的安全参数。我尝试的一种配置是:
<service name="My.Service">
<host>
<baseAddresses>
<add baseAddress="http://localhost/MyService/"/>
</baseAddresses>
</host>
<endpoint address="UnSecuredAccessToMyService.svc"
behaviorConfiguration="restBehavior"
name="UnSecureEndpoint"
binding="webHttpBinding"
bindingName="SomeBindingName"
bindingNamespace="http://mydomain/myservice"
contract="Domain.MyService.MyClass" />
<endpoint address="SecuredAccessToMyService.svc"
behaviorConfiguration="secBehavior"
name="SecuredEnpoint"
binding="webHttpBinding"
bindingConfiguration="customSecureBinding"
bindingName="SecBindingName"
bindingNamespace="http://mydomain/myservice"
contract="Domain.MyService.MyClass" />
</service>
<behaviors>
<endpointBehaviors>
<behavior name="restBehavior">
<webHttp />
</behavior>
<behavior name="secBehavior">
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="customSecureBinding">
<security mode="Transport">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</webHttpBinding>
</bindings>
文件 UnSecuredAccessToMyService.svc 和 SecuredAccessToMyService.svc 如下所示:
<%@ ServiceHost
Factory="somefactory, anotherfactory"
Service="My.Service, AnotherService"
%>
我对 WCF 和 .Net 还很陌生,所以额外的细节真的很有帮助,谢谢!
【问题讨论】: