配置服务以在 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 */
现在一切如我所愿。我希望这段代码可以帮助其他人。
我想将我的 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 */
现在一切如我所愿。我希望这段代码可以帮助其他人。