2009-04-01 8 views
2

Existe-t-il un moyen facile de lire les paramètres d'un fichier (asp.net) web.config en utilisant javascript dans une page html?Lire les fichiers de configuration .net avec Javascript (pas javascript dans une page ASPX)

BTW J'ai trouvé des exemples de passage des paramètres de configuration dans des blocs javascript dans des pages aspx, par ex.

<script type="text/javascript"> 
function ReadConfigSettings(){ 
    var wibble = '<%=ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString %>' } 
</script> 

mais ce n'est pas ce que j'essaie de faire. J'ai besoin de lire les paramètres depuis une page html autonome.

+2

Si Javascript pouvait lire votre chaîne de connexion, vous auriez un sérieux problème de sécurité. –

Répondre

4

Si le code HTML/Javascript est exécuté à partir d'un répertoire virtuel dans IIS, il n'y a pas de moyen direct d'accéder au fichier .config dans Javascript car les gestionnaires asp.net empêchent les fichiers ".config" d'être servis. Donc, ne pas charger le fichier dans une requête IFrame/Ajax.

Une option est un fichier .aspx sur le serveur qui renvoie la valeur applicable à partir du fichier .config, donc:

http://myhost/mydirectiory/GetConfigurationValue.aspx?key=MyConnString

appelé de Javascript renverrait XML de « connectionStringGoesHere » qui peut alors être utilisé.?

+0

Belle suggestion. Merci pour l'aide. –

+0

Ne serait-ce pas mieux en tant que service Web, fichier asmx? –

1

Vous ne pouvez pas. Le fichier de configuration est côté serveur et n'est pas accessible (délibérément et à juste titre) du côté client.

0

Une vieille question, mais une autre suggestion mais il pourrait ne pas correspondre à vos besoins d'accès à l'aide d'une page HTML pur ...

Cependant, je suis en train de faire quelque chose de similaire Peut-être quelque chose comme dans la page principale

<script type="text/javascript"> 
function ReadConfigSettings(){ 
Window.wibble = '<%=ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString %>'   
} 
</script> 

cela laisse Window.wibble une variable globale accessible à partir d'ailleurs.

Variations sur ce sont le mettre dans un div d'entrée cachée et d'y accéder via jQuery/ElementById ailleurs ... Quelque chose que je aime ce

<input id="connString" type="hidden" value="@Mvc.Utils.GetConnectionString()" /> 

Essentiellement juste à l'aide du côté serveur pour ajouter les valeurs dans le html et ensuite charger les valeurs dans le côté client plus tard.

Cependant, puisque vous avez besoin d'un code HTML pur et d'une chaîne de connexion que vous passez, cela échoue probablement pour des raisons de sécurité, etc., mais cela fonctionne pour la lecture de simples valeurs de configuration web.

Questions connexes