Мы могли бы использовать Basichttpbinding
с TransportWithMessageCredential
режимом безопасности для создания службы WCF и получения конкретного запроса.
BasicHttpBinding binding = new BasicHttpBinding();
binding.MessageEncoding = WSMessageEncoding.Mtom;
binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
Конфигурация.
<basicHttpBinding>
<binding name="mybinding" messageEncoding="Mtom">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
Результат.
Для передачи больших файлов BasicHttpBinding
также поддерживает кодирование MTOM
, см. Приведенный ниже документ.
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/large-data-and-streaming
После того, как мы создали вышеупомянутую службу WCF, на стороне клиента мы должны предоставить username/password
для доступа к службе, заголовок SOAP, как вы отправили.
ServiceReference1.ServiceClient client = new ServiceClient();
client.ClientCredentials.UserName.UserName = "administrator";
client.ClientCredentials.UserName.Password = "abcd1234!";
Не стесняйтесьдайте мне знать, если есть что-нибудь, с чем я могу помочь.