2009-06-17 6 views
0

J'ai hérité d'un site Web précompilé qui utilise javascript créé dans un gestionnaire générique (ashx). J'ai besoin de modifier le js, mais je n'ai pas la source, seulement les bibliothèques pré-compilées. À l'heure actuelle, nous faisons simplement une requête http sur le ashx, modifier le résultat et la sortie directement sur le site:Modifier la sortie d'un gestionnaire générique pré-compilé .ashx

<script runat="server"> 
    protected string getJs() 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(Request.Url, "/js.ashx")); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     StreamReader sr = new StreamReader(response.GetResponseStream()); 
     return = sr.ReadToEnd().Replace("old stuff", "new stuff"); 
    } 
</script> 

<script type="text/javascript"> 
    <%= getJs() %> 
</script> 

Cela semble être une façon assez rond-point de le faire. Est-il possible de modifier la sortie d'un gestionnaire générique sans demander la page elle-même?

Répondre

2

Vous pouvez essayer de désassembler la pièce pré-compilée, si vous avez accès au dll réel. Voir converting-il-to-c-code et autres questions similaires. En utilisant .NET Reflector, vous pouvez avoir une version réalisable (C#) du code derrière js.ashx. Cette source peut (espérons-le) être légèrement modifiée pour être directement appelable, ou mieux, pour produire le Javascript désiré.

Questions connexes