1

我有一个使用默认 ASP.Identity 实现的 MVC5 应用程序。我已经定制了用户以允许所有额外的必需数据。我正在使用 firstname.lastname 结构后的 UserName 字段,并已将所有内容更新为不使用电子邮件地址,这是默认设置。到这一步没问题。现在这是我的挑战...

我试图允许多租户类型结构,因此,我需要在登录时需要一个额外的字段,在这种情况下,CompanyId,它是一个用户定义的唯一的 int 数据字段(捕获状态-颁发的许可证号,因此重复的可能性为零),这样用户名(第一个)与 CompanyId 绑定,允许在其他各种公司中重复使用用户名。

我需要 CompanyId 字段来存储公司的 connectionString,然后可以利用 asp.Identity 的基本实现。

我一直在搜索,直到我脸色发青,并找到了大量有关多租户的数据,但似乎没有什么与我的“简单”相匹配?用例。我可能没有考虑到这一点,但至少从表面上看,似乎没有那么复杂,但我不知道从哪里开始。

public class CompanyConnection
    {
        public int CompanyId { get; set; }
        public string ConnectionString { get; set; }
    }

默认站点配置不允许注册,而是一个帐户应用程序,成功创建一个帐户,因此所有帐户创建后的业务逻辑都是相同的,但特定于用户并且确实需要它自己的数据库。我知道这可以通过带有子域的 url 请求来处理,但是从 SSL 证书的角度来看,这给我带来了一系列全新的挑战(所有站点都需要 EV 证书)并且我真的不想走这条路。

任何建议将不胜感激。

4

1 回答 1

0

只需使用 CompanyConnection.ConnectionString 实例。如果您的 CompanyConneciton 类是静态的,请尝试以下代码,否则从 companyConnection 对象实例中获取 ConnectionString。

youDBContext conn = new yourDBContext();
conn.Database.Connection.ConnectionString = CompanyConnection.ConnectionString;
conn.Database.Connection.Open();
于 2014-12-24T04:23:14.843 回答