【问题标题】:Allow All Subdomains允许所有子域
【发布时间】:2016-10-03 21:01:00
【问题描述】:
我正在尝试设置一个新的 .NET Core MVC 应用程序以允许多租户应用程序的所有子域。我添加了一个 Route Contraint 以使我能够提取租户信息,但无法让我的解决方案允许任何子域。我想实现这一点,而不必编辑我的本地 Windows 主机文件进行测试。这可能吗?
【问题讨论】:
-
如何在不编辑主机文件的情况下在本地机器上测试多个子域?您的 .NET Core MVC 应用正在侦听本地 IP 上的所有传入请求(或您在 WebHostBuilder 中设置的任何内容,但如果您想测试除 localhost 之外的任何其他主机名,则需要将它们添加到主机文件。saaskit 项目有一个很好的方法来处理多租户。你可以看看:github.com/saaskit/saaskit
标签:
.net
asp.net-core
asp.net-mvc-routing
asp.net-core-mvc
.net-core
【解决方案2】:
你是对的,如果你在iisExpress下运行项目,你应该设置一些配置。
但是如果你使用dotnet run 运行你的项目,它会让你使用任何你想要的子域...
【解决方案3】:
对于多租户网络应用,我通常会使用本地(或内部网)DNS 来翻译域名,因为这样您就可以最终控制域名的翻译方式。
示例步骤:
1) 设置本地DNS服务器,并设置你的开发机本地网络使用DNS服务器IP
2)设置域(如local为我经常做的域,并设置*.local指向你的开发机器IP,所以子域将是siteA.local,siteB.local等.)
3) 在您的 .NET Core MVC 应用程序中。侦听特定端口(我通常将其作为 HTTP 直接侦听端口 80 - 但请确保您以管理员权限运行应用程序,因为您希望使用端口 80 而不是 5000 之类的端口)
4) viola,享受 local 的所有子域(例如 siteA.local、siteB.local 等)都将指向您的本地开发机器,然后拥有 .NET Core为所有域提供服务的 MVC 应用程序