2015-02-10 70 views
1

我想配置我的SOAP服务,以通过WS安全性对其进行授权,并在标头部分仅使用用户名和密码处理框架。默认配置迫使我用这样的标题:将服务配置为在ASP.NET中使用WS安全性

<wsse:Security> 
    <wsse:UsernameToken> 
     <wsse:Username>scott</wsse:Username> 
     <wsse:Password>Dupa.8</wsse:Password> 
     <wsse:Nonce>5uW4ABku/m6/S5rnE+L7vg==</wsse:Nonce> 
     <wsu:Created>2002-08-19T00:44:02Z</wsu:Created> 
    </wsse:UsernameToken> 
</wsse:Security> 

我想只用:

<wsse:Security> 
    <wsse:UsernameToken> 
     <wsse:Username>scott</wsse:Username> 
     <wsse:Password>Dupa.8</wsse:Password> 
    </wsse:UsernameToken> 
</wsse:Security> 

我怎么能实现呢?有没有简单的方法来做到这一点?

回答

0

最后我得到了我需要的东西。我选择制作自定义SoapHeader,而不是使用WS安全本身。这里是我的代码:

定制SOAPHEADER类:

public class UsernameToken 
{ 
    public string Username { get; set; } 
    public string Password { get; set; } 
} 

[XmlRoot("Security", Namespace = "wsse", IsNullable = false)] 
public class Security : SoapHeader 
{ 
    public UsernameToken UsernameToken; 
} 

添加这个头的WebService:

public Security header; 
[WebMethod] 
[SoapHeader("header", Direction = SoapHeaderDirection.In)] 
/* Here is code of my method */ 

而现在一切正常,我想。我希望这个代码可以帮助别人。