gpt4 book ai didi

c# - 根据企业 ID 更改登录时的连接字符串

转载 作者:行者123 更新时间:2023-11-29 20:14:49 25 4
gpt4 key购买 nike

我正在尝试找到解决以下问题的最佳方法:

我有一个应用程序网站,我想将其用于所有企业 (ASP.NET/C#)。但是,根据登录时的企业名称,我想切换数据库。也就是说,每个业务都有自己的MySQL数据库,结构和流程完全相同,不会与前端代码冲突。实现这一目标的最佳方法是什么?我想在 web.config 中添加不同的连接字符串,并根据业务 ID 使用其中之一。但是,我不想在 web.config 中出现数十个连接字符串。一定是另一种更有效率的方式。我也担心安全性,所以如果我是业务 ABC,我想确保我始终只看到 ABC 数据库。任何反馈将不胜感激。

下面是我使用登录数据库的全局登录示例:

protected void GlobalLogin(string email, string password)
{
int salt = email.Trim().Length;
string hashedPassword;
Passwords obj = new Passwords(password, salt);
hashedPassword = obj.ComputeSaltedHash();
using (MySqlConnection connection = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand("sp...", connection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@email", MySqlDbType.VarChar, 100).Value = email;
cmd.Parameters.Add("@password", MySqlDbType.VarChar, 200).Value = hashedPassword;
connection.Open();
MySqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
{
... set session and go to the homepage
}
}
}
}

最佳答案

哦,好吧...您肯定需要一个用于连接字符串的存储。配置文件是选项之一。您还可以使用单个表创建单个数据库,该表保存每个企业的连接字符串。您的 web.config 文件需要具有此集中式数据库的连接字符串(您应该使用 SQL Server 的加密来加密其数据)。当用户识别目标业务时(不知何故......也许从登录页面),您需要连接到集中式数据库,获取用户业务的连接字符串并动态设置连接字符串。

出于性能原因,您可以将连接字符串缓存在内存中,这样您就不必不断访问集中式数据库。

关于c# - 根据企业 ID 更改登录时的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com