Web config 同一WCF配置文件中的消息级安全性和传输级安全性
我正在尝试为我正在编写的WCF应用程序设置消息级安全性。此应用程序已具有使用传输级别安全性设置的终结点。我可以设置另一个具有消息级安全性的端点吗?顺便说一下,此应用程序正在IIS上运行。我在同一个配置文件中设置了一个单独的服务,如下所示Web config 同一WCF配置文件中的消息级安全性和传输级安全性,web-config,wcf-security,Web Config,Wcf Security,我正在尝试为我正在编写的WCF应用程序设置消息级安全性。此应用程序已具有使用传输级别安全性设置的终结点。我可以设置另一个具有消息级安全性的端点吗?顺便说一下,此应用程序正在IIS上运行。我在同一个配置文件中设置了一个单独的服务,如下所示 <service name="generalName"> <endpoint address=...> . . . </service> <service name="generalName2"&g
<service name="generalName">
<endpoint address=...>
.
.
.
</service>
<service name="generalName2">
<endpoint address=""...>
</service>
.
.
.
我问这个问题的原因是因为我认为我已经安排好了一切,我认为它可以工作。但是当我尝试访问以前的服务时,我得到以下错误
此服务的安全设置
需要Windows身份验证,但它
未为IIS应用程序启用
承载此服务的
我知道以前的服务是有效的,因为我可以在设置第二个服务之前访问它
有什么建议吗?我应该尝试在这里编写一个完全独立的服务,还是有办法解决这个问题?不知道您使用什么绑定—取决于该绑定是否同时支持传输和消息安全—是的,当然您应该能够公开两个端点,一个具有传输安全性,另一个具有消息安全性 由于这实际上只是一个具有两个端点的服务,因此您的配置应该是这样的(我选择了
wsHttpBinding
作为示例-根据需要进行调整):
基本上,您定义了两个绑定配置,然后一个服务有两个端点,一个使用传输安全绑定配置,另一个端点使用消息安全绑定配置
当然,这两个端点不能具有相同的地址-因此需要提供两个单独的(相对的)端点每个端点的地址。您使用的是哪种绑定?还记得配置IIS以禁用匿名访问并仅启用Windows身份验证,因为@marc_的示例要求在每个服务请求中传递Windows标识。WCF客户端将自动提供Windows标识,因此除配置文件外,您不需要更改任何内容。@Sixto Saez:这只是我的猜测-wsHttpBinding还支持其他传递客户端凭据的方法,如用户名或证书等。对,根据我在问题中看到的一个例外,我也在猜测同样的情况。谢谢谢谢你的回复!您说过“因为这是一个具有两个端点的服务”。。。我的申请并非如此(如果我正确理解你的意思)。我有两个服务(在同一个项目中,两个类尝试从同一个服务合同中请求服务)。我已经设置了两个绑定和两个端点。对于Saez,对于我所在的特定子站点,匿名访问和windows身份验证都已设置为正确的设置。根站点是否应该设置这些选项?我正在运行iis7。
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="TransportSec">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
<binding name="MessageSec">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="YourService" >
<endpoint name="Transport"
address="Transport"
binding="wsHttpBinding"
bindingConfiguration="TransportSec"
contract="IYourService" />
<endpoint name="Message"
address="Message"
binding="wsHttpBinding"
bindingConfiguration="MessageSec"
contract="IYourService" />
</service>
</services>
</system.serviceModel>