Вот что мне нужно:
- Сжатие -> требуется пользовательская привязка
- NetTcpBinding
- Шифрование
- Имя пользователя Windows в Windows (аутентификация Windows в порядке, но она должна быть неблокирующей)
Кажется, почти невозможно собрать все это вместе.
Однако теперь я думаю, что подошел ближе, но это все равно не работает в разных доменах. Я не хочу, чтобы проверка подлинности Windows блокировала доступ к веб-службе, как в настоящее время. Мне просто нужно знать личность пользователя и предлагать данные на его основе. Есть также некоторые методы, которые требуют анонимного доступа.
<bindings>
<customBinding>
<binding name="ZipBinding" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00">
<customMessageEncoding innerMessageEncoding="binaryMessageEncoding" messageEncoderType="WcfExtensions.GZipMessageEncoder, WcfExtensions">
<readerQuotas maxDepth="999999999" maxStringContentLength="999999999" maxArrayLength="999999999" maxBytesPerRead="999999999" maxNameTableCharCount="999999999">
</readerQuotas>
</customMessageEncoding>
<windowsStreamSecurity protectionLevel="EncryptAndSign"/>
<tcpTransport maxBufferSize="999999999" maxReceivedMessageSize="999999999" />
</binding>
</customBinding>
А почему EncryptAndSign не требует сертификата? Он использует SSL для шифрования сообщений, верно?
Я был бы счастлив использовать sslStreamSecurity, но он тоже не работал.
Я полагаю, мое текущее решение использует безопасность сообщений? Транспортной безопасности будет более чем достаточно, и она также будет быстрее, но я не уверен, что мне придется изменить