2010-02-26 66 views
5

在ASP.NET中,我可以将连接字符串存储在web.config中,就像明智的我需要将连接字符串或某些配置值存储在某些经典ASP文件中。哪里存储经典ASP的连接字符串?

我该怎么做?为了实现这一点,我需要使用XML文件并将连接字符串存储在此?

最佳做法是什么?

回答

6

使用globa.asa在应用程序对象中设置一个值。

+0

在那个应用程序中工作,但它不会在整个企业中工作(假设有多个应用程序) – 2010-03-02 15:18:39

+0

配置通常基于每个应用程序(包括asp.net web.config)。安全方面,最好的做法是为每个应用程序使用不同的db用户帐户。 – 2010-03-03 17:05:47

+0

如果我的每个客户端都有连接字符串?他们每个人都访问Azure SQL数据库。 – Onaiggac 2017-01-03 17:29:20

5

可以将包含连接字符串的ASP文件连同任何其他配置信息一起作为字符串变量,然后将其包含在连接到数据库的文件中。

+0

这应该是一个.inc文件或.asp文件? – nimi 2010-02-26 04:20:36

+3

使其成为一个.asp文件。在遥远的过去,我看到一台服务器以这样的方式配置,即.inc文件不会被asp运行时解释,导致服务器下载.inc文件的源。这对于.asp文件来说会大大减少。 – 2010-02-26 04:25:38

+0

@Nimesh和@Paul,正如Joost在他的回答中所建议的那样,使用'global.asa'似乎是更好的解决方案..它可以被所有页面访问,而不需要包含任何东西...... – 2010-02-27 02:26:29

2

引述最近,我拿起...

不要做一些愚蠢像商店 在正坐在在 一个虚拟目录中的Web服务器 上的文件的秘密(web.config中来去提醒)。 Web 服务器已知 意外允许文件由于错误而下载为 。对于 例如,在经典 ASP页面的连接字符串可以在过去 通过指向Web浏览器 “page.asp :: $ DATA”,而不是 page.asp被盗。这欺骗了IIS到 认为请求是为一个 静态文件,因为.asp :: $ DATA 不会匹配其脚本 地图中的任何内容。但后缀:: $ DATA对于操作系统 具有 特殊含义:它指示文件的默认NTFS 流,这正是您在 文件正常读取内容时得到的内容。换句话说,询问 page.aspx :: $ DATA 的文件系统与询问page.aspx的 内容相同。因此,IIS将 提供ASP页面的源代码,而不是将其解释为 脚本。 这些年来一直存在很多012,,但大多数人会同意你最好在 Web服务器上存储任何虚拟目录外的敏感文件 。更好的做法是,将 敏感文件保存在不同的 分区上,然后将您的虚拟 目录保留在其中。