【问题标题】:.NET - Users and different databases.NET - 用户和不同的数据库
【发布时间】:2010-09-20 22:33:27
【问题描述】:

我正在考虑让某些用户访问一个数据库,而其他用户则根据他们所属的公司访问另一个数据库。处理连接字符串并确保用户在登录时连接到正确的数据库的最佳方法是什么?

感谢您的任何想法。

【问题讨论】:

    标签: .net asp.net database configuration


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我会使用动态连接字符串生成器,以及将用户帐户映射到其他数据库的主数据库。

      我不会存储所有这些连接字符串,而是使用我的连接字符串构建器方法根据来自主服务器的信息根据需要创建连接。我也会使用 Windows 身份验证,以避免将密码存储在您的数据库中。

      【讨论】:

      • 在此基础上,您可以在角色/帐户数据库中添加一个额外的列,如果您使用它来包含这些额外数据。
      【解决方案3】:

      有一个数据库表来存储每个用户的连接信息。也许像Provider Model 这样的东西会有用?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        相关资源
        最近更新 更多