c# - 如何在.Net Core 3.1中创建的WCF服务中读取/解析soap标头请求
问题描述
我创建了一个 poc WCF 服务,并且可以使用 SOAP UI 或 Postman 调用该服务。但是对于一些项目工作,我需要解析下面的肥皂安全标头
SOAP 标头
<soapenv:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-5351BA8068B753C930158868612679914"><wsse:Username>test user</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">CS++k5OEqKsJByVPPmUqcBkAeoQ=</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">VK+Ilb/zy80lFbfHAAQupg==</wsse:Nonce><wsu:Created>2020-05-05T13:42:06.798Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header>
startup.cs 文件如下所示
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<ITestService, TestService>();
services.AddSoapServiceOperationTuner(new ServiceOperationTuner());
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
var binding = new BasicHttpBinding();
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Digest;
app.UseSoapEndpoint<ITestService>("/Service.svc", binding, SoapSerializer.DataContractSerializer);
}
}
ServiceOperationTuner.cs 类具有获取 HttpContext 对象的代码,如下所示。对于向 WCF 服务发出的任何请求,将在此处调用 Tune 方法
public void Tune(HttpContext httpContext, object serviceInstance, OperationDescription operation)
{
}
httpContext 对象包含所有标头详细信息,但不包含 soapenv:Header。
谁能帮我在 .Net 核心中解析这个 soapenv:Header 请求?提前致谢
解决方案
推荐阅读
- haskell - 堆栈:检测到随机依赖循环
- qt - 无法引用 listview qml 的突出显示 id
- javascript - 我的替换方法在格式化数字时搞砸了(在数字中添加逗号)
- python - python从for循环中提取值到另一个for循环中
- sql - 在 SQL(特别是 SQLITE3)中,当视图中的列数取决于数据时,如何将存储为窄表的数据转换为宽格式视图
- python - 使用 ctypes 将数组从 python 传递到 C,然后在 Python 中使用该数组
- ios - 如何从 SwiftUI 中的工作表视图转到另一个页面?
- vba - VBA:对于每个循环,如果数据在日期之间,则复制
- python - Python can't apply fit_generator to keras model with multiple input
- flutter - 勾选框上的颤动圆角