【发布时间】:2010-09-20 22:33:27
【问题描述】:
我正在考虑让某些用户访问一个数据库,而其他用户则根据他们所属的公司访问另一个数据库。处理连接字符串并确保用户在登录时连接到正确的数据库的最佳方法是什么?
感谢您的任何想法。
【问题讨论】:
标签: .net asp.net database configuration
我正在考虑让某些用户访问一个数据库,而其他用户则根据他们所属的公司访问另一个数据库。处理连接字符串并确保用户在登录时连接到正确的数据库的最佳方法是什么?
感谢您的任何想法。
【问题讨论】:
标签: .net asp.net database configuration
在 Web.Config 或 App.Config 中
<connectionStrings>
<add name="ConnectionForDudes" providerName="System.Data.SqlClient"
connectionString="Data Source=___MALECONNECTIONHERE___"/>
<add name="ConnectionForChicks" providerName="System.Data.SqlClient"
connectionString="Data Source=___FEMALECONNECTIONHERE___"/>
</connectionStrings>
当需要打开数据库时,您可以通过以下方式获取连接字符串:
bool UserIsMale = true;
string ConnectionStringName = "ConnectionFor" + UserIsMale ? "Dudes" : "Chicks";
string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString;
【讨论】:
我会使用动态连接字符串生成器,以及将用户帐户映射到其他数据库的主数据库。
我不会存储所有这些连接字符串,而是使用我的连接字符串构建器方法根据来自主服务器的信息根据需要创建连接。我也会使用 Windows 身份验证,以避免将密码存储在您的数据库中。
【讨论】:
有一个数据库表来存储每个用户的连接信息。也许像Provider Model 这样的东西会有用?
【讨论】: