配置服务以在 ASP.NET 中使用 WS Security

Configure service to use WS Security in ASP.NET

我想将我的 SOAP 服务配置为通过 WS 安全和进程框架对其进行授权,在 header 部分仅使用用户名和密码。默认配置迫使我像这样使用 header:

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

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

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

自定义 SoapHeader class:

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;
}

将此 header 添加到 WebService:

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

现在一切如我所愿。我希望这段代码可以帮助其他人。