【发布时间】:2021-08-25 13:37:10
【问题描述】:
我是 C# 新手,但我需要更改现有程序,只需更改连接字符串即可。这个想法是将连接重定向到测试数据库环境。我发现代码使用 dll 来创建与服务器的连接。我使用 Jetbrains Dotpeek 查看 dll 内部,但我只能看到方法和函数,但我无法看到更改它的连接细节。
有哪些加密连接字符串的方法?是否有通常用于此的特殊文件,我可以查找?
提供更详细的信息:
在cs文件的正常代码中,例如有这样的:
var result = new LibSqlQuery(Db.ABC.ConnectionString, sql);
return result;
而 Db 是 dll 中的一个方法,定义如下:
public static class Db
{
private static Dictionary<string, LibDbConnection> _connections = new Dictionary<string, LibDbConnection>();
private static LibDbConnection GetConnection(string connectionName)
{
lock (Db._connections)
{
if (!Db._connections.ContainsKey(connectionName))
Db._connections.Add(connectionName, new LibDbConnection(connectionName));
}
return Db._connections[connectionName];
}
public static LibDbConnection ABC => Db.GetConnection("conABC");
public static LibDbConnection CDE => Db.GetConnection("conCDE");
}
其中 ABC 和 CDE 是数据库环境。
【问题讨论】:
-
通常.NET 应用程序会在配置文件中维护一个数据库连接字符串。
-
连接字符串本身(希望)不是硬编码的。例如,oracle 将它们的连接存储在
tnsnames.ora文件中。我假设 DLL 只负责根据传递的参数连接到数据库。你用的是什么数据库? -
我们正在使用 SQL-Server。
-
在可以使用 SQL Server 集成安全性的企业环境中,加密连接字符串会导致用户管理不善。如果您在域下,您可以创建 Windows 安全组(域组)并授予 SQL Server 中这些组的登录权限。所以连接字符串中没有密码,也不需要加密。另外还有一种管理应用程序访问权限的简单方法(只需将用户添加/删除到组中)
标签: c# encryption dll dotpeek