我正在考虑让某些用户访问一个数据库,而其他用户则根据他们所属的公司访问另一个数据库。处理连接字符串并确保用户在登录时连接到正确的数据库的最佳方法是什么?
感谢任何想法。
答案 0 :(得分:7)
在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;
答案 1 :(得分:6)
我会使用动态连接字符串构建器,以及将用户帐户映射到其他数据库的主数据库。
我不是存储所有这些连接字符串,而是使用我的连接字符串构建器方法根据主服务器的信息根据需要创建连接。我还使用Windows身份验证,以避免在您的数据库中存储密码。
答案 2 :(得分:3)
拥有一个存储每个用户的连接信息的数据库表。也许Provider Model这样的东西会有用吗?