【发布时间】:2011-12-25 04:22:53
【问题描述】:
我们正在创建一个多租户 Web 应用程序,我们在其中通过子域(customer1.ourapp.com、customer2.ourapp.com 等)识别租户。
子域的设置必须是数据驱动的 - 即我们不希望每次获得新客户时都必须修改 IIS 配置(手动或编程)。
在 MVC 中,哪里是检查请求中的子域是否有效的最佳位置(即子域存在于数据库的某个表中)
我考虑过的一些选项,
- 控制器中的 OnActionExecuting
- 在自定义操作过滤器中
- IIS 模块
- 作为路由设置的一部分 - 一个知道有效子域的自定义路由类 - 类似于这种方法 - http://blog.maartenballiauw.be/post/2009/05/20/ASPNET-MVC-Domain-Routing.aspx
我认为从概念上讲这是一个路由任务,所以最后一个选项似乎是正确的??即具有不存在的子域的请求本质上是无效的 url,因此它不应该与路由匹配,而是应该落入 404。这也将允许我们明确定义需要或不需要的路由一个有效的子域。
【问题讨论】:
-
我认为您可以使用 mvc 路由轻松做到这一点。您将从 HERE 获得所需的信息
标签: c# asp.net-mvc