登录时将不同的用户指向不同的数据库

时间:2014-05-19 19:35:20

标签: c# sql asp.net-mvc-4 dynamic database-connection

我需要为不同的用户提供不同的连接字符串。有几个线程呈现类似的场景,其中没有一个具有解决方案 - 如何在登录时为用户建立到数据库的动态连接。

我已经能够动态获取连接字符串,但不太确定如何设置它/它们(并为不同的用户保持不同的字符串活动)。

我有一个ClientDbContext模型,我有

namespace MyProject.Models
{    public class ClientDbContext : DbContext
            {
    public ClientDbContext(string DefaultConnection)
                  : base("DefaultConnection")
{
}

在我的ClientController中

using MyProject.Models;

    namespace MyProject.Controllers
    {
        public class ClientController : Controller
        {
            private ClientDbContext db = new ClientDbContext("DefaultConnection");

这里的大图....目标是在用户登录时动态设置与特定数据库(目录)的连接。可能有几十个不同的数据库。

流程(目前正在工作:-))

  1. 用户获取登录页面(帐户)。
  2. 输入登录信息(帐户)。
  3. 登录控制器(帐户)检查有效输入;匹配
    用户输入的字符串到用户之前输入的字符串
        轮廓;并将用户输入的字符串与预期名称匹配     数据库(在dbStrings表中)。
  4. 我可以在登录期间为用户检索特定的数据库名称和字符串。我创建了一个临时错误消息,向我显示名称和字符串。

    接下来会发生什么......

    应使用所选字符串为用户创建数据库连接。 我坚持这个......

    然后,用户被重定向到客户端索引(客户端) - 这是有效的

    并且为用户保留所选连接(直到用户关闭浏览器或注销 - 结束会话)。 不太确定如何设置这个....

    其他用户可以使用不同的凭据登录。系统必须为每个经过身份验证的用户保持离散连接。

0 个答案:

没有答案