【问题标题】:C# MVC4 Different versions of the application, one entryC# MVC4 不同版本的应用,一个入口
【发布时间】:2013-09-17 14:59:00
【问题描述】:

我希望有人能给我一些建议/帮助我指出正确的方向。 我开发了一个应用程序。应用程序是用 c# 编写并使用 MVC 4。该应用程序具有多租户数据库。因此,客户 A 的信息在自己的数据库中,客户 B 无法访问。此外,会员资格存储在客户数据库中。所以A的用户在A的数据库中,B的用户在B的数据库中。

应用程序有时会有试点。在这种情况下,我们有 2 个版本。 例如:版本 1 包含客户 A 和 B 版本 2 包含客户 C

我想要的是我有一个条目,但页面是特定于版本的。

我的想法是创建一个代理或其他知道客户 A 和 B 运行版本 1 和客户 C 运行版本 2 的东西。 因此,当客户 A 的用户想要登录时,他提供了他的公司编号、用户名和密码。 代理检查客户A的数据库所在位置,并检查用户名和密码是否有效。

我不想将用户发送到子域或其他东西。所以网址保持不变:http://www.domain.com。 (可以包含类似 domain.com/controller/action 的操作,但不能包含类似 http://customer-a.domain.com 的操作)

我希望有人能给我一些建议。我尝试使用控制台应用程序和 HttpListner 但没有用。示例将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing


    【解决方案1】:

    就像他们说的那样,有九种方法可以给猫剥皮。我当然会利用实体框架和存储库设计模式来解决这个问题。

    我会做以下事情,

    • 使用实体框架创建访问数据库所需的 2 个 .edmx 文件
    • 实施存储库设计模式。

    例如,您将拥有一个 CustomerRepository,其中包含从正确数据库中检索适当数据的逻辑。

    如果对应用程序业务规则没有任何深入的了解,那么很难为您提供 100% 满足您需求的解决方案,很遗憾,您必须自己解决这个问题。但就像你说的,你只是希望有人为你指明方向。

    如果您不熟悉实体框架和存储库设计模式,这里有一些有用的链接可供您阅读,

    【讨论】:

    • 您好,感谢您的回复。我正在使用 Fluent NHibernate,效果很好。存储库设计模式,尚未使用,所以我会看看:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多