多个子域可以共享同一个文档根吗?

时间:2013-07-16 10:35:10

标签: asp.net iis-7 subdomain

我想设置每个客户子域,例如

clientA.topleveldomain.comclientB.topleveldomain.com

我认为我可以通过拥有一个站点然后为该站点设置绑定来在IIS中执行此操作,例如。

  

Port 80 - clientA.topleveldomain.com

     

端口80 - clientB.topleveldomain.com

但是,我需要为两个子域进行独立登录。也就是说,一旦用户在clientA.top上进行了身份验证,就不应该在clientB.top上进行身份验证....

同样,两者都需要独立会话,因此在子域之间移动不会保留任何会话信息。

这是使用绑定“开箱即用”还是我需要将每个客户端作为一个单独的网站?

该站点将是在IIS 7上运行的ASP.Net MVC站点。我想使用ASP.Net表单身份验证。

1 个答案:

答案 0 :(得分:0)

  

这是否可以“开箱即用”使用绑定或我需要   将每个客户作为一个单独的网站?

是的,因为开箱即用的会话和表单身份验证cookie不是共享的跨子域。但更好的方法是在web.config中明确设置这些cookie的domain属性:

<forms loginUrl="~/signin" 
       cookieless="UseCookies" 
       protection="All" 
       timeout="30" 
       slidingExpiration="false"
       domain="clientA.topleveldomain.com" />

另一方面,如果您使用的是集成Windows身份验证,则会更加困难,因为身份验证过程中不涉及Cookie。