2010-08-26 78 views
3

我找不到适合此目的的问题,所以我问了这个问题。在数据库中存储连接字符串

我们已经部署了一个ASP.NET网站,它有两个连接字符串,其中一个可以由用户在运行时配置。问题是,由于我使用.NET Framework来完成此操作,因此在web.config更改时会创建一个临时文件,这会迫使我的客户授予对整个网站文件夹的完全权限,而不仅仅是Web。配置文件。他对此并不满意,而经理们则质疑将其他连接字符串存储在同一个配置文件中。

所以我有选择创建一个单独的配置文件,在一个单独的文件夹,以便他们应该只授予该文件夹的完整权限,或将其存储在数据库上。第一个选项与现在大致相同,所以问题是:

如何在数据库中存储ConnectionString?

请注意,我不是说应用程序ConnectionString,而是另一种选择,因为此应用程序将像三个应用程序一样集成。

所以,大家,给我的优点和缺点,存储在数据库上的好处和不利之处。

+0

如果您决定将连接字符串存储在数据库中,请考虑对其进行加密。特别是如果它包含用户名和密码(即您不使用Windows身份验证)。 – 2010-08-26 18:10:31

+0

当然,如果我将它存储在数据库中,我会引用它。 – Smur 2010-08-27 12:46:00

回答

5

我不会在数据库中存储连接字符串。

我会使用Settings File来代替(设置文件可以在运行时修改而不会导致像web.config这样的应用程序的重新编译)。

你也可以给不同的设置不同的范围(用户,应用程序等),这样每个用户可以存储他们自己的配置,如果你想不踩别人的脚趾。

+0

设置文件存储在哪里?网站运行的帐户是否需要对该文件夹的写入权限(我会这么认为!)? – badbod99 2010-08-26 15:07:35

+0

这样我可以将单独的设置文件放在另一个文件夹中,并授予它的完整权限。谢谢 – Smur 2010-09-06 20:33:31

6

如果用户正在使用具有自己的数据库的应用程序连接到他选择的第二个数据库,并且需要能够在运行时更改该数据库,那么将其存储在数据库中。这是某种自助服务托管应用程序?

设置文件适用于管理员要更改的内容。当应用程序用户(或应用程序开发人员)而不是系统管理员需要在设置文件中进行更改时,最好将其放入数据库中。

2

储存于数据库

如果它是你的用户数据的一部分,并没有涉及到这个应用程序的设置,我将其存储在数据库中的诗句任何别的地方。这与任何其他用户数据没有区别。

优势

  1. 不存储公众可以得到它 - 虽然ASP.net ISAPI筛选器不允许访问它正常,但你永远不知道什么漏洞会弹出接下来
  2. 容易把它与用户的其他数据 - 因为它是链接到你的网站的用户来说,这是非常有用的
  3. 没有安全问题 - 无需设置任何特殊权限的任何地方
-1

你可以在你的网页上使用这样的东西。配置

<add name="ConnectionString" connectionString="Data Source={0};Initial Catalog={1};User ID={2};Password={3}" providerName="System.Data.SqlClient" />

然后使用的String.format()来设置每个参数的diferent值。

相关问题