根据登录凭据更改数据库源
本文关键字:数据库 登录 | 更新日期: 2023-09-27 18:30:01
我是一名新的开发人员,正在开发一个使用SalesForce REST API的项目。我的.Net项目的一部分涉及根据登录凭据更新web.config和数据库。
例如,客户端1登录时,会使用正确的使用者密钥和客户端密钥更新。此客户端有权访问Database1。
中的客户端2日志得到适当更新。现在,以编程方式将Database1与Database2切换。
有没有一种方法可以根据登录以编程方式更改数据库源?
快速编辑到我的帖子。在这种情况下,Client1和Client2是两个独立的公司,它们不应该访问彼此的数据库。我希望能够为两个客户端使用相同的应用程序,但根据登录的公司更新web.config和使用的数据库。
如果您使用的是L2S或EF,您可以在应用程序中创建一个继承L2S/EF上下文类的类,然后让派生类的构造函数根据登录来确定要使用什么连接字符串并初始化它自己。然后,您可以根据需要使用该派生类作为数据源。
基本上,您可能会遇到这样的情况:不希望每次添加新的客户端/数据库时都更新web.config。您希望在web.config中存储连接字符串的模板,但不希望存储字符串本身。
您不需要根据登录凭据使用数据库数据更新web.config。您可以在web.config文件中包含所需的所有连接字符串:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="database1" connectionString="..." />
<add name="database2" connectionString="..." />
</connectionStrings>
</configuration>
然后简单地检索处理用户登录时所需的值:
var connectionString = ConfigurationManager.ConnectionStrings["database1"];
或
var connectionString = ConfigurationManager.ConnectionStrings["database2"];
只需在.config文件中添加2个条目,如下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DbConn" connectionString="Data Source=someDataSrc;User Id=someuderId;Password=somePassWord;" />
<add name="DbConn2" connectionString="Data Source=someDataSrc; User Id=someuderId; Password=somePassWord" />
</connectionStrings>
</configuration>