【问题标题】:Read .net config files with Javascript (not javascript in an aspx page)使用 Javascript 读取 .net 配置文件(不是 aspx 页面中的 javascript)
【发布时间】:2009-04-01 11:16:46
【问题描述】:

有没有一种简单的方法可以在 html 页面中使用 javascript 从 (asp.net) web.config 文件中读取设置?

顺便说一句,我找到了将配置设置传递到 aspx 页面中的 javascript 块的示例,例如

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

但这不是我想要做的。我需要从独立的 html 页面中读取设置。

【问题讨论】:

  • 如果 Javascript 可以读取您的连接字符串,那么您将遇到严重的安全问题。

标签: .net javascript web-config


【解决方案1】:

如果 HTML/Javascript 从 IIS 中的虚拟目录运行,则无法直接访问 Javascript 中的 .config 文件,因为 asp.net 处理程序会阻止提供“.config”文件。因此,不要将文件加载到 IFrame/Ajax 请求中。

一个选项是服务器上的 .aspx 文件,它从 .config 文件返回适用的值,因此:

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

从 Javascript 调用将返回“connectionStringGoesHere”的 XML,然后可以使用它。?

【讨论】:

  • 不错的建议。感谢您的帮助。
  • 作为web服务,asmx文件不是更好吗?
【解决方案2】:

你不能。配置文件是服务器端的,不能从客户端访问(故意且非常正确)。

【讨论】:

    【解决方案3】:

    一个老问题,但另一个建议,虽然它可能不符合您使用纯 HTML 页面访问的要求...

    但是我正在尝试做类似的事情 可能类似于主页中的内容

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

    这使 Window.wibble 成为可从其他地方访问的全局变量。

    这方面的变化包括将其放在隐藏的输入 div 中,并通过 jQuery / ElementById 在其他地方访问它... 我喜欢这样的东西

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

    基本上只是使用服务器端将值添加到 html 中,然后稍后在客户端加载值。

    但是,由于您需要纯 HTML 及其传递的连接字符串,因此出于安全等原因,这可能会失败,但它适用于读取简单的 Web 配置值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2015-01-18
      • 2020-05-25
      • 1970-01-01
      • 2017-05-20
      相关资源
      最近更新 更多