我找不到符合此目的的问题,所以我问它。
我们已经部署了一个ASP.NET网站,该网站有两个连接字符串,其中一个可以由用户在运行时配置。问题是,由于我使用.NET Framework来执行此操作,因此在更改web.config时会创建一个临时文件,这会强制我的客户授予整个网站文件夹的完整权限,而不仅仅是Web。配置文件。他对此并不满意,并且经理正在质疑将其他连接字符串存储在同一个配置文件中。
因此,我可以选择在单独的文件夹中创建单独的配置文件,以便它们只应授予该文件夹的完全权限,或将其存储在数据库中。第一个选项与现在大致相同,所以问题是:
如何将ConnectionString存储在数据库上?
请注意,我不是在谈论应用程序ConnectionString,而是另一种选择,因为此应用程序将集成为三个应用程序。
所以,伙计们,给我优点和缺点,将它存储在数据库中的优点和缺点。
答案 0 :(得分:8)
如果用户正在使用具有自己数据库的应用程序连接到他选择的第二个数据库并且需要能够在运行时更改它,那么是的,将其存储在数据库中。这是某种自助服务托管应用程序吗?
设置文件适用于管理员要更改的内容。当应用程序用户(或应用程序开发人员)而不是系统管理员希望在设置文件中进行更改时,最好将其放在数据库中。
答案 1 :(得分:5)
我不会在数据库中存储连接字符串。
我会改用Settings File(可以在运行时修改设置文件,而不会导致重新编译像web.config这样的应用程序。)
您还可以为不同的范围(用户,应用程序等)提供不同的设置,以便每个用户可以存储自己的配置,如果您不喜欢踩任何其他人的脚趾。
答案 2 :(得分:2)
将其存储在数据库
中如果它是关于您的用户的数据的一部分而与此应用程序的设置无关,我会将其存储在数据库中,而不是任何其他地方。它与任何其他用户数据没有什么不同。
<强>优势强>
答案 3 :(得分:-1)
您可以在web.config上使用类似的内容
<add name="ConnectionString" connectionString="Data Source={0};Initial Catalog={1};User ID={2};Password={3}" providerName="System.Data.SqlClient" />
然后使用string.Format()设置每个参数的不同值。