我有一个多租户MVC4网站,我想根据传入的主机和域名设置 RouteTable ,例如 www.domain1.com , www.domain2.com 和 www.domain3.co.uk 可根据主机和域名将一个或多个附加值附加到路由表中。
DNS服务器已经设置了许多带有主机的不同区域,我使用IIS7作为“自定义Web服务器”,而不是使用Visual Studio 2012开发服务器,这样我就可以获得正确的HTTP_HOST值我在请求变量中。
我对IIS7的问题是HttpContext.Current.Request.ServerVariables [“HTTP_HOST”]的值不可用如果你试图在 RegisterRoutes 方法中调用它所有的完成其他路线映射。
我需要做的主要事情是在请求管道中的某个时刻确定最终将在HTTP_HOST服务器变量中结束的值。该值需要存储并且路由表在使用之前会进行适当更新。
它是否需要Http模块,Http Handler,Action Filter或者其他什么?或者在MVC管道中还有其他地方可以做到这一点。
克里斯平
答案 0 :(得分:0)
我所知道的基于主机的路由没有内置支持,但你可以创建一个拉取主机值的Route子类。这是一个例子:
http://blog.maartenballiauw.be/post/2009/05/20/aspnet-mvc-domain-routing.aspx
这是为MVC3编写的,但在MVC4中应该可以正常工作。