对于为我的SSL受保护的服务设置标准身份验证,我有点困惑。我尝试过HTTP报头方式,但这是不标准的,而且WS-我对我来说很重要。可以在方法级别将Authentication Token设置为Username。这是WSIT中的结果BindingPolicy:
<wsp:Policy wsu:Id="DataStoreWSPortBindingPolicy">
<wsp:ExactlyOne>
<wsp:All>
<wsam:Addressing wsp:Optional="false"/>
<sp:TransportBinding>
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:Layout>
<wsp:Policy>
<sp:Lax/>
</wsp:Policy>
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128/>
</wsp:Policy>
</sp:AlgorithmSuite>
</wsp:Policy>
</sp:TransportBinding>
<sp:Wss10/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsp:Policy wsu:Id="DataStoreWSPortBinding_hello_Input_Policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:SupportingTokens>
<wsp:Policy>
<sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10/>
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>SvcUtil警告:
<!-- WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'http://webServices/': -->
<!-- <wsdl:binding name='DataStoreWSPortBinding'> -->
<!-- <sp:SupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">..</sp:SupportingTokens> -->我希望通过ClientCredentials在WCF客户机中设置凭据,然后通过数据库在服务端进行身份验证。实现这一目标的步骤是什么?
发布于 2011-10-04 10:12:55
如果您想在传输级别上有标准的方式,为什么不使用HTTP基本身份验证呢?这是HTTP协议的通用标准化认证机制,它也适用于web服务。
您得到的错误很可能是由于SupportingTokens断言。即使是正确的断言,WCF也不支持它。尝试使用SignedSupportingTokens或SignedEncryptedSupportingTokens。如果您无法修改您的服务来生成这样的WSDL,您甚至可以尝试手动修改您获得的WSDL。
你说的WS-我是什么意思?有多个WS-I标准,其中有些根本不需要策略--只是简单的SOAP服务,在WSDL中直接描述标头。
https://stackoverflow.com/questions/7645895
复制相似问题