2008-11-05 61 views
3

我看有一定的用戶訪問一個數據庫和其他用戶訪問基於它們屬於該公司另一個數據庫。處理連接字符串並確保用戶在登錄時連接到正確的數據庫的最佳方式是什麼?.NET - 用戶和不同的數據庫

感謝您的任何想法。

+0

ASP.Net?桌面?都? – 2008-11-05 18:54:24

回答

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; 
3

有一個爲每個用戶存儲的連接信息的數據庫表。也許像Provider Model會有用嗎?

+0

謝謝,這裏有很好的信息。 – 2008-11-05 19:15:46

6

我會用一個動態連接字符串生成器,並映射用戶帳戶到其他數據庫master數據庫。

而不是存儲所有這些連接字符串,我會使用我的連接字符串生成器方法根據需要創建連接根據來自主。我也會使用Windows身份驗證,以避免在數據庫中存儲密碼。

+0

在此基礎上構建,如果您使用它來包含這些額外的數據,則可以在角色/帳戶數據庫中添加額外的列。 – MikeJ 2008-11-05 19:32:57