Я видел этот вопрос здесь и везде много раз, но я не могу обдумать это.
Вот что я хочу сделать.Мне нужно разместить службу WCF в IIS 6. Мне нужна защита имени пользователя и пароля, и я не хочу, чтобы они передавались незашифрованными, поэтому я использую HTTPS.У меня это все работает локально на моем IIS, но когда я прихожу, чтобы развернуть его, я получаю ошибку анонимного доступа не включена.На моем локальном IIS анонимный доступ включен, на развернутом сервере - нет, и мы не хотим его включать.Проблема понята.Решение не очевидно для меня ....
Если я перехожу на страницу в IE или добавляю ссылку на сервис из Visual Studio, я получаю эту ошибку после ввода своего имени пользователя / пароля.Итак, это показывает, что мой сертификат и HTTPS работают нормально, а имя пользователя и пароль верны.Вот соответствующие настройки из web.config:
<services>
<service name="SecureWcfTestsApplication.Service1">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration ="Binding2"
contract="SecureWcfTestsApplication.IService1" />
</service>
</services>
<bindings>
<basicHttpBinding>
</basicHttpBinding>
<wsHttpBinding>
<binding name="Binding2">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="Windows" algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Я использую wsHttpBinding, потому что ему не нравится basicHttpBinding с параметром clientCredentialType, установленным в Windows.Сказав, что я предпочел бы использовать basicHttp, но он хочет, чтобы UserName использовалось в качестве clientCredentialType, и я не уверен, в чем разница между UserName и безопасностью Windows.