Если вы хотите предоставить службу WCF через HTTP, вы можете использовать BasicHttpBinding с пользовательской конфигурацией:
<bindings>
<basicHttpBinding>
<binding name="secured">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="userName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="securedService">
<serviceMetadata httpsGetEnabled="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Namespace.Type, assembly" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Namespace.Type" behaviorConfiguration="securedService">
<host>
<baseAddresses>
<!-- some url -->
<baseAddress baseAddress="https://localhost:8088/Service" />
</baseAddresses>
</host>
<endpoint address="" contract="Namespace.Type" binding="basicHttpBinding" bindingConfiguration="secured" />
<endpoint address="mex" contract="IMetadataExchange" binding="mexHttpsBinding" />
</service>
</services>
Это создаст службу SOAP 1.1 с использованием HTTPS и профиля токена UserName для передачи учетных данных в сообщении.Он также будет предоставлять метаданные (WSDL) через HTTPS, а имя пользователя и пароль будут проверяться пользовательским валидатором .Проверка по умолчанию проверяет учетные записи Windows, но ее также можно перенастроить для использования поставщика членства ASP.NET.
Последнее, что вам нужно сделать, это разрешить HTTPS на используемом порту (в примере 8088).Для этого вам понадобится сертификат с закрытым ключом, установленный в хранилище сертификатов на машине (должен быть в Моем / Личном хранилище в LocalMachine).Вы можете создать самозаверяющий сертификат для тестирования.
Получив сертификат, вы должны назначить сертификат для порта с помощью netsh.Вы также должны разрешить приложению прослушивать порт с помощью netsh, в противном случае ваше консольное приложение будет работать от имени администратора (UAC - Windows Vista, 7, 2008, 2008 R2).