Question

J'ai créé un IHttpHandler dans .NET C # qui renvoie des éléments HTML vers une page ASP classique.

La page asp classique communique avec le ServerXMLHTTP par le biais de requêtes http de base à l'aide de System.Web.SessionState.IRequiresSessionState en vbscript ou d'appels Ajax en JavaScript.

Maintenant, il me faut un moyen de partager une variable que j’ai dans vbscript mais pas en javascript avec l’application .NET.

Le premier bit, partager une variable entre asp classique et .net n’est pas un problème, je peux simplement l’ajouter à la requête http. Parce que la variable n'est pas disponible en javascript, je ne peux pas le faire dans ce cas.

J'avais l’idée de pouvoir peut-être mettre en cache la variable dans l’application .NET et utiliser la version mise en cache pour les appels javascript. Mais pour que cela fonctionne, il me faudrait un moyen d'identifier de manière unique le & "Client &"; dans .NET ...

J'ai essayé d'ajouter <=> à mon HttpHandler et d'utiliser l'identificateur de session (SessionId), mais cela n'a pas fonctionné, car chaque appel du gestionnaire HttpHandler semble avoir un nouvel identifiant.

Est-ce que je pense de la bonne façon? Quelles sont mes options ici?

Était-ce utile?

La solution

Que diriez-vous d'avoir une variable masquée sur la page dans laquelle vous pouvez stocker la valeur de la variable à partir du script vb côté serveur de vos pages asp.

Vous pouvez ensuite utiliser le langage Javascript pour interroger cette variable et l'envoyer au gestionnaire Asp.Net par le biais de vos appels ajax.

Autres conseils

Vous pouvez mettre votre valeur dans un cookie, puis lire et utiliser n'importe quoi avec JavaScript, y compris l'envoyer dans une requête à l'application .net ...

En fin de compte, ma solution au problème était la suivante:

  1. J'envoie les variables à mon service Web avec la requête ws normale
  2. Je stocke les valeurs de variable dans une table de hachage sur le service Web et renvoie la clé de hachage au client dans un objet HTML masqué (j'ai utilisé une tête <meta> pour cela)
  3. Dans le javascript, j'ai lu cette valeur de hachage et l'attache à la requête http en tant que valeur d'en-tête.
  4. Lorsque le service Web voit cette clé de hachage, il recherche les valeurs de variable respectives dans la table de hachage persistant.

Peut-être pas la meilleure solution mais semble bien fonctionner dans mon cas ...

Je recommanderais également un cookie. Vous pouvez également charger la valeur à partir de la base de données, mais ce serait excessif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top