Pergunta

Eu criei um IHttpHandler em .NET C # que retorna peças de html para uma página asp clássico.

Os clássicos página ASP comunica com o IHttpHandler através básica http solicitações usando ServerXMLHTTP em VBScript ou chamadas Ajax em JavaScript.

Agora, eu preciso de uma maneira de compartilhar uma variável que eu tenho em VBScript, mas não em javascript com o aplicativo .NET.

O primeiro bit, a partilha de uma variável entre asp clássico e .net não é um problema como eu posso apenas adicioná-lo para a solicitação HTTP. Como a variável não está disponível em javascript, porém não posso fazer isso nesse caso.

Eu tive a idéia de que talvez eu pudesse armazenar em cache a variável em um aplicativo .NET e usar a versão em cache para chamadas de javascript. Mas para que isso funcione eu precisaria de uma maneira para identificar exclusivamente o "cliente" em .NET ...

Eu tentei adicionar System.Web.SessionState.IRequiresSessionState ao meu HttpHandler e usar o SessionId mas isso não funcionou porque cada chamada para o HttpHandler parece para obter um novo ID.

Am I pensar da maneira certa? Quais são as minhas opções aqui?

Foi útil?

Solução

Que tal ter uma variável escondida na página em que você pode armazenar o valor da variável de seu script vb lado do servidor de suas páginas asp.

Então você pode usar Javascript para consultar esta variável para enviar toda para o manipulador de Asp.Net através de suas chamadas ajax.

Outras dicas

Você pode colocar seu valor em um cookie, então você pode ler com javascript e fazer qualquer coisa com ele, inclusive enviá-lo em uma solicitação para o .NET aplicativo ...

No final minha solução para o problema foi o seguinte:

  1. Eu envio as variáveis ??para o meu webservice, juntamente com os ws normais solicitar
  2. I armazenar os valores das variáveis ??em uma tabela hash no webservice e devolver o HashKey para o cliente em um objeto HTML oculto (eu usei um elemento de cabeça <meta> para isso)
  3. No javascript Eu li que o valor hash e anexá-lo ao http-request como um valor de cabeçalho.
  4. Quando o webservice vê que HashKey ele olha para os respectivos valores de variáveis ??na tabela hash persistente.

Pode não ser a melhor solução, mas parece funcionar bem no meu caso ...

Eu recomendo um cookie também. Você também pode carregar o valor do banco de dados, mas isso seria um exagero.

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