我在 Windows 7 上运行 IIS 7,并想设置通配符子域来测试使用子域识别用户的 ASP.NET 多租户应用程序。我该如何实现?
答案1
2016 年更新
Windows 2016 中的 IIS 10 支持通配符主机标头。
起源答案
不幸的是,IIS 7 仍然不支持子域名(或域绑定的任何部分)的通配符映射。
您有以下几种选择:
如果您可以确保网站只接收一个 IP 上的流量,并且您拥有/拥有对服务器的专用访问权限,则可以使用 DNS 通过通配符映射和无主机来“伪造”行为。关于此内容,有一篇很棒的帖子http://dirk.net/2008/05/28/wildcard-host-header-binding-and-subdomains-with-iis7
只需让网站响应所有流量,或使用受支持的绑定响应所有流量,然后让 ASP.NET 处理子域处理。基本上一切都会命中 IIS 和 ASP.NET,然后您使用代码进行子域控制。您的 APP 位于根目录,子域仅供应用程序用于获取用户信息。
使用某种流量控制/url 重写模块将对用户或 user2.domain.com 的请求重写为 app.domain.com(或其他任何内容),并使用一些包含用户名的附加标头(即“X-UserInfo”),然后您的应用以这种方式处理用户名