Не удается добавить ссылку на WCF с базовой аутентификацией HTTPS

#c# #wcf #authentication #https

#c# #wcf #аутентификация #https

Вопрос:

Я создал службу WCF: HelloWorldService следуйте советам в Внедрении службы HelloWorld, затем размещенной в IIS 8.5 (Windows 8.1) с базовой аутентификациейвведите описание изображения здесь

и мой web.config

 <?xml version="1.0"?>

<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

  <system.serviceModel>
    <serviceHostingEnvironment >
      <serviceActivations>
        <add factory="System.ServiceModel.Activation.ServiceHostFactory"
        relativeAddress="./HelloWorldService.svc"
        service="MyWCFServices.HelloWorldService"/>
      </serviceActivations>
    </serviceHostingEnvironment>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpsGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="MyWCFServices.HelloWorldService">
        <endpoint address="" binding="basicHttpBinding"
        contract="MyWCFServices.IHelloWorldService"
        bindingConfiguration="secureHttpBinding">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding"
        contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name ="secureHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="Basic" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>
</configuration>
  

Я публикую успешную попытку в браузере и захожу под своим именем пользователя и паролем. Это сработало
введите описание изображения здесь

Но ошибка при добавлении ссылки на службу, я не могу сделать это с тем же именем пользователя и паролем на VS2013. введите описание изображения здесь Я много раз пытаюсь ввести имя пользователя и пароль, но снова возвращаю диалоговое окно введите описание изображения здесь и должен нажать Нет.

Это подробности:

Произошла ошибка при загрузке https://localho.st/HelloWorldSecure/HelloWorldService.svc/_vti_bin/ListData.svc /$metadata Запрос выполнен с ошибкой со статусом HTTP 400: неверный запрос. Метаданные содержат ссылку, которая не может быть разрешена: https://localho.st/HelloWorldSecure/HelloWorldService.svc HTTP-запрос неавторизован с использованием схемы аутентификации клиента ‘Anonymous’. Заголовок аутентификации, полученный от сервера, был «Basic realm =mylocalhost». Удаленный сервер вернул ошибку: (401) неавторизованный. Если служба определена в текущем решении, попробуйте создать решение и добавить ссылку на службу снова.

Кто-нибудь, помогите мне сделать это правильно. Большое спасибо!

Комментарии:

1. Вы пробовали изменить аутентификацию на анонимную или Windows, прежде чем пытаться добавить ссылку? Как только вы получили ссылку, вы можете изменить аутентификацию обратно на basic.

2. О, спасибо, я пробую аутентификацию в Windows, она работает правильно, но я вернулся к Basic и запустил service, он возвращает исключение

3. Вам необходимо установить учетные данные в клиенте, прежде чем совершать вызов. Можете ли вы опубликовать код, который вы используете для подключения к службе?

4. @Tim Я не могу добавить ссылку на службу, не забудьте установить учетные данные