带有安全标头的Web服务

时间:2009-11-03 20:39:29

标签: asp.net web-services

我正在尝试使用第三方Web服务(来自Peoplesoft的组件接口),但为了进行身份验证,我必须有一个如下所示的标题:

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

    <wsse:Security soap:mustUnderstand="1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">    
      <wsse:UsernameToken>    
        <wsse:Username>X</wsse:Username>    
        <wsse:Password>X</wsse:Password>    
      </wsse:UsernameToken>    
    </wsse:Security>    
  </soapenv:Header>

我在我的应用程序中的web.config文件中添加了一个块,该文件试图使用webservice,如下所示:

<system.serviceModel>
        <client>
            <header>
                <endpoint>
                    <wsse:Security soap:mustUnderstand="1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                        <wsse:UsernameToken>
                            <wsse:Username>X</wsse:Username>
                            <wsse:Password>X</wsse:Password>
                        </wsse:UsernameToken>
                    </wsse:Security>
                </endpoint>
            </header>
        </client>
</system.serviceModel>

但是标题仍然没有出现在对Web服务的XML请求中。

我是否在正确的轨道上?

2 个答案:

答案 0 :(得分:0)

如果您使用.NET 2.0连接到该服务,最好的办法是下载WSE 3.0WSE 2.0如果您使用的是.NET 1.1)。

如果您正在使用WCF连接到该服务,这里有一个链接,可以帮助您一路走来。这是关于在WCF中实现WS-Security标准的正确方法:

Enterprise .NET Community: Security your WCF Services

答案 1 :(得分:0)

请看这个链接:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/03db0772-b319-468c-9298-0ec301dacf34

我从不会在WCF上不允许在http

上使用简单的用户名令牌