Asp.net mvc 3 可以为多个站点的子域使用一个代码库吗?

Asp.net mvc 3 可以为多个站点的子域使用一个代码库吗?,asp.net-mvc-3,subdomain,codebase,Asp.net Mvc 3,Subdomain,Codebase,我甚至不知道这是否可能,但我想我会问 我正在创建一个小型CRUD应用程序,但我有多个站点。每个站点都将使用CRUD。应用程序将具有通用的CRUD方法和样式,但每个站点将应用不同的表单。我希望避免创建多个CRUD应用程序,这些应用程序只在特定的内容(只是不同的形式)上有所不同 我想要这样的东西: mycrud.website1.com mycrud.website2.com mycrud.website3.com 我可以为每个站点创建一个子域,没有问题。但是,将所有子域指向一个MVC应用程序目录

我甚至不知道这是否可能,但我想我会问

我正在创建一个小型CRUD应用程序,但我有多个站点。每个站点都将使用CRUD。应用程序将具有通用的CRUD方法和样式,但每个站点将应用不同的表单。我希望避免创建多个CRUD应用程序,这些应用程序只在特定的内容(只是不同的形式)上有所不同

我想要这样的东西:

mycrud.website1.com
mycrud.website2.com
mycrud.website3.com
我可以为每个站点创建一个子域,没有问题。但是,将所有子域指向一个MVC应用程序目录是否可行?如果有可能的话,我会如何限制website1的用户查看website2或website3的内容呢?这是“角色”可以处理的事情吗(在验证用户身份之后)


谢谢。

首先-最简单的部分是为所有三个域创建一个网站。您只需使用DNS条目即可做到这一点。没问题。所有三个域都应指向同一ip

就内容而言,您可以通过多种方式实现。我认为你对角色的看法很明确。如果有必要的话,它还允许给定用户同时看到site1和site2的内容


如果您不想强制用户进行身份验证,那么应该考虑其他选项。您可以将CRUD逻辑和数据访问逻辑包装到单独的库中,并跨IIS中的三个不同站点使用它们。您可以有一个站点,并根据请求URL显示内容。可能还有很多其他的选择

很多网站都这样做,不仅仅是MVC。某些内容场将*.mydomain.com指向单个IP,并在IIS中具有通配符映射

从这里开始,应用程序应该查看URL以确定它应该做什么。一些CMS系统以这种方式运行,使用域作为决定加载哪些页面的关键

我构建了一个专用的可标记SAS应用程序(软件即服务),它允许我们在一个应用程序中托管所有客户机。有些客户端对页面或功能进行了自定义。我们可以通过为每个客户端创建自定义插件来处理这个问题,在需要时可以覆盖控制器或视图


所有客户端共享一个共同的代码库,除了每个客户端自定义的主题/模板之外,它们是相同的。只有当客户让我们定制一个功能时,我们才需要构建他们的插件DLL。现在,这是一个高级功能,因此需要对代码库进行大量修改,但最终,如果应用程序需要它,则它是100%可能的。

感谢您提供的提示。我正在挖掘你的最后一段,因为它击中了我正在思考的东西:有一些我想做的精简积垢,但我想我别无选择,只能把它放在主积垢中并要求认证。关于如何不强制用户基于请求URL验证/显示内容,您是否有任何建议/链接?该URL将在控制器的请求对象下可用。这是MVC框架的一部分。我建议设置一个基本控制器来嗅探URL,并设置一个名为CurrentSite的属性(或类似的属性)。然后,可以将控制器更改为从基本控制器继承。(您的基本控制器应继承自控制器)。然后,您的控制器将有权访问这些属性,并可以基于这些属性显示内容。本文包括一个设置基本控制器的示例(尽管他这样做是为了国际化)。伟大的非常感谢您的指导和链接。