C# 远程创建DSN ODBC连接时添加自定义登录id和密码
我已经编写了一段代码,可以远程创建ODBC DSN连接。我可以将注册表项添加到ODBC.INI。连接显示在ODBC数据源管理器中 我所面临的困难是,当我使用用户输入的登录ID和密码选择SQL Server身份验证时。默认情况下,它占用运行程序的用户,而我希望在运行代码时由用户决定。所有其他条目由用户输入 我应该如何实现这一目标?我尝试向注册表项添加属性,但似乎不起作用 这是我代码的一部分,基本上添加了注册表项C# 远程创建DSN ODBC连接时添加自定义登录id和密码,c#,sql-server,windows,odbc,registry,C#,Sql Server,Windows,Odbc,Registry,我已经编写了一段代码,可以远程创建ODBC DSN连接。我可以将注册表项添加到ODBC.INI。连接显示在ODBC数据源管理器中 我所面临的困难是,当我使用用户输入的登录ID和密码选择SQL Server身份验证时。默认情况下,它占用运行程序的用户,而我希望在运行代码时由用户决定。所有其他条目由用户输入 我应该如何实现这一目标?我尝试向注册表项添加属性,但似乎不起作用 这是我代码的一部分,基本上添加了注册表项 string reg_location = "SOFTWARE\\ODBC\\OD
string reg_location = "SOFTWARE\\ODBC\\ODBC.INI";
dsn_name = reg_location + "\\" + dsn_name;
RegistryKey Key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, destination_server).CreateSubKey(dsn_name);
using (Key)
{
Key.SetValue("Database", database);
Key.SetValue("Description", description);
Key.SetValue("Driver", driver);
Key.SetValue("Server", server);
if (trusted_connection.ToLower().Equals("yes") || trusted_connection.ToLower().Equals("true") || trusted_connection.ToLower().Equals("sspi"))
Key.SetValue("Trusted_Connection", trusted_connection);
else if (trusted_connection.ToLower().Equals("false") || trusted_connection.ToLower().Equals("no"))
{
Key.SetValue("User Id", ss_username.Text);
Key.SetValue("Password ", ss_password.Text);
}
Key.SetValue("LastUser", System.Security.Principal.WindowsIdentity.GetCurrent().Name);
}
你弄明白了吗?如果我将Trusted Connection设置为False,我可以在Excel VBA中使用任何用户/过程组合。但如果能将其保存在注册表中就好了。SQL Server身份验证和Windows身份验证之间的切换工作正常(将集成安全性添加到false),但我还没有找到用户名和密码的存储位置。