1

我想将我的 SOAP 服务配置为通过 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>

我怎样才能实现它?有什么简单的方法吗?

4

1 回答 1

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 */

现在一切都按我的意愿进行。我希望这段代码可以帮助别人。

于 2015-02-19T13:10:48.503 回答