Pergunta

Eu tenho um site escrito em Delphi que precisa obter dados de um serviço .NET web. A fim de consumir o serviço web Estou anexando a um site web .NET primeiro que contém um assistente que o usuário final tem que preencher, que por sua vez é então chamar o serviço web, a fim de preencher AJAX drop-down listas e retornar dados ao chamar aplicação web Delphi.

Assim, para ser claro ...

  1. web site Delphi abre web site .NET
  2. web site .NET preenche AJAX listas suspensas de serviço .NET web
  3. Quando o usuário clica enviar no .NET web assistente que chama o serviço web .NET para obter dados e retorna ao site Delphi

No entanto chamar o serviço .NET web para preencher as listas suspensas provoca IE6 (e de fato todos os navegadores) para tratar isso como uma ameaça à segurança de domínio cruzado e eu recebo a informação "Esta página está acessando que não está sob seu controle. Este poses um risco de segurança ..." erro.

O código para a queda baixos é a seguinte (em caso isso ajude) ...

No arquivo .apsx

<asp:DropDownList ID="DocCategoryDropDown" 
              runat="server" 
              OnSelectedIndexChanged="DocCategoryDropDown_SelectedIndexChanged"
              AutoPostBack="true">
</asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="DocCategoryCascadingDropDown" 
                           runat="server" 
                           TargetControlID="DocCategoryDropDown"
                           LoadingText="[Loading...]" 
                           Category="CategoryId" 
                           UseContextKey="True" 
                           ContextKey="NY"
                           PromptText="Select a Category" 
                           ServiceMethod="GetDocCategory" 
                           ServicePath="tba">
</ajaxToolkit:CascadingDropDown>

no arquivo C #

DocCategoryCascadingDropDown.ServicePath = path;

Se o caminho é no mesmo servidor como o site funciona bem, mas se o caminho não é que eu receber o aviso, portanto, deve ser uma questão de segurança de domínio cruzado.

Eu tive problemas semelhantes com serviços web Java antes e eu tenho em torno deste usando proxy no Apache, a fim de tornar o site que hospeda o assistente eo serviço web parecem existir no mesmo domínio e, portanto, parada os erros.

Alguém pode me dizer como posso fazer a mesma coisa no IIS, por favor?

Se houver mais alguma informação que pode fornecer, por favor deixe-me saber como eu realmente gostaria de obter este problema resolvido o mais rápido que eu puder.

Muito obrigado antecipadamente.

Foi útil?

Solução

OK, depois de muita googling (e ranger de dentes) Eu encontrei este site que faz um bom trabalho de explicar a solução.

http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx

Só vai para mostrar o quão importante é saber como pedir a direito pergunta:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top