WCF через SSL с незащищенной страницы - PullRequest
6 голосов
/ 23 августа 2010

У меня есть сервис WCF, который мне нужен для запуска через SSL, я звоню по нему с веб-страницы (используя jQuery), которая может быть или не быть защищенной страницей.Проблема заключается в том, что если я позвоню с защищенной веб-страницы на моем сайте, вызов будет выполнен точно так, как я ожидаю ... однако, если я сделаю звонок с незащищенной страницы на моем сайте, на защищенную веб-службу(используя "https://";)) он возвращает нулевые данные (через Firebug). Все, что я пропустил? Это вообще возможно?

Вот конфигурация службы, которую я вызываю (яболее чем рады предоставить больше материала, если это необходимо):

<behaviors>
  <endpointBehaviors>
    <behavior name="AspNetAjaxBehavior">
      <webHttp/>
    </behavior>
  </endpointBehaviors>
</behaviors>
<services>
  <service name="ClientServices.Membership" behaviorConfiguration="ServiceGatewayBehavior">
    <endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" bindingConfiguration="SecureBinding"
     binding="webHttpBinding" contract="ClientServices.Membership" />
  </service>
</services>
<bindings>
  <webHttpBinding>
    <binding name="SecureBinding">
      <security mode="Transport"/>
    </binding>
  </webHttpBinding>
</bindings>

Вот код, который вызывает службу:

$.ajax({
            url: serviceUrl,
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: '{"review":{"Username":"' + username + '"}}',
            success: function (data) {
                $.log(data);
            },
            error: function (a, b, c) {
                $.log(b);
            },
            cache: false
        });

ОБНОВЛЕНИЕ

Если я изменю метод вызова службы на «GET» и вызову его напрямую через SSL, он будет работать нормально и выдаст ожидаемый jSon. Он находится только на незащищенной странице, где проблема сохраняется.

1 Ответ

0 голосов
/ 17 сентября 2010

Если предположить, что оба сайта и службы находятся на yourdomain.com, то я в первую очередь подумал бы, что когда на незащищенной странице ваш браузер не присоединяет cookie, которые он имеет для домена сайта, и поэтому, когда он вызывает службу, он не аутентифицирован.

Использовали ли вы Fiddler для просмотра необработанных данных заголовка HTTP и, что более важно, чем отличаются эти данные на рабочей и нерабочей странице?

Люк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...