Я пытаюсь использовать сервис wcf soap в проекте dot net core web api.поскольку ядро dot net не поддерживает настройку через файл web.config.все настройки wcf мне нужно сделать только в коде, но я не могу найти эквивалентный код в ядре dot net 2.1 для нижеприведенной конфигурации
<customBinding>
<binding name="SecureBinding">
<security includeTimestamp="false"
authenticationMode="UserNameOverTransport" />
<textMessageEncoding messageVersion="Soap11">
<readerQuotas maxDepth="128" maxStringContentLength="2147483647"
maxArrayLength="2147483646" maxBytesPerRead="4096"
maxNameTableCharCount="16384000" />
</textMessageEncoding>
<httpsTransport maxBufferPoolSize="524288" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" requireClientCertificate="true"/>
</binding>
эквивалентный код в ядре dot net написан такдалеко
var messegeElement = new TextMessageEncodingBindingElement
{
MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap11),
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxDepth = 128,
MaxStringContentLength = int.MaxValue,
MaxArrayLength = int.MaxValue,
MaxBytesPerRead = 4096,
MaxNameTableCharCount = 16384000,
}
};
HttpsTransportBindingElement httpsTransport = new HttpsTransportBindingElement
{
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue,
RequireClientCertificate = true,
AuthenticationScheme = AuthenticationSchemes.Ntlm,
TransferMode = TransferMode.Buffered
};
CustomBinding customBinding = new CustomBinding(messegeElement, httpsTransport);
как написать элемент защиты, например
SecurityBindingElement sbe = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
sbe.IncludeTimestamp = false;
Я искал, но обнаружил, что SecurityBindingElement еще не доступен в ядре dot net.есть ли обходной путь к этому?