2010-08-23 24 views
6

Tengo un servicio WCF que necesito ejecutar sobre SSL, lo estoy llamando desde una página web (usando jQuery) que puede o no ser una página segura. El problema es que si realizo la llamada desde una página web segura en mi sitio, la llamada funciona exactamente como yo esperaría ... sin embargo, si realizo la llamada desde una página no segura en mi sitio, al servicio web seguro (usando "https: //";)) devuelve datos nulos (a través de Firebug). ¿Algo que me falta? ¿Esto es posible?WCF sobre SSL desde la página no segura

Aquí está la configuración del servicio que estoy llamando (Estoy más que feliz de proporcionar más cosas si es necesario):

<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> 

Este es el código que llama al servicio:

$.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 
     }); 

ACTUALIZACIÓN

Si cambio el método de llamada de servicio a "GET" y llamar directamente a través de SSL que funciona bien y da salida a la JSO n que yo esperaría. Solo dentro de la página no segura donde el problema persiste.

+0

¿Puedes publicar tu código jQuery que llama al servicio? ¿Obtiene un 200 de regreso de su servicio (con datos nulos devueltos) o está recuperando un error? –

+0

Agregué el código de llamada por usted. Este código no tiene problemas para ejecutarse en otros escenarios, solo cuando la página no es segura y está llamando al servicio seguro. –

+0

Y sí, consiguiendo un 200 de vuelta –

Respuesta

0

Suponiendo que tanto el sitio como el servicio están en tudominio.com, lo primero que pienso es que cuando se encuentre en la página no segura, su navegador no adjuntará la cookie que tiene para el dominio del sitio y cuando llame al servicio, no está autenticado

¿Ha utilizado Fiddler para ver los datos del encabezado HTTP sin procesar y, lo que es más importante, qué difiere en estos datos cuando está en la página que funciona y no funciona?

Luke

Cuestiones relacionadas