首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为SSL保护的WSIT / Metro web服务和客户端设置身份验证

为SSL保护的WSIT / Metro web服务和客户端设置身份验证
EN

Stack Overflow用户
提问于 2011-10-04 09:36:47
回答 1查看 1K关注 0票数 0

对于为我的SSL受保护的服务设置标准身份验证,我有点困惑。我尝试过HTTP报头方式,但这是不标准的,而且WS-我对我来说很重要。可以在方法级别将Authentication Token设置为Username。这是WSIT中的结果BindingPolicy

代码语言:javascript
复制
<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警告:

代码语言:javascript
复制
<!--    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客户机中设置凭据,然后通过数据库在服务端进行身份验证。实现这一目标的步骤是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-04 10:12:55

如果您想在传输级别上有标准的方式,为什么不使用HTTP基本身份验证呢?这是HTTP协议的通用标准化认证机制,它也适用于web服务。

您得到的错误很可能是由于SupportingTokens断言。即使是正确的断言,WCF也不支持它。尝试使用SignedSupportingTokensSignedEncryptedSupportingTokens。如果您无法修改您的服务来生成这样的WSDL,您甚至可以尝试手动修改您获得的WSDL。

你说的WS-我是什么意思?有多个WS-I标准,其中有些根本不需要策略--只是简单的SOAP服务,在WSDL中直接描述标头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7645895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档