我正在尝试在asp.net mvc中创建一个包含子域名的网站。但我不知道该怎么做。在visual studio中设置这个新解决方案时,最好是为每个子域创建一个不同的项目还是有一个项目?显然有一些直接的优势,例如发布更新到一个子域而不触及其他子域。 这是规范:
1)我有很多应用程序,每个应用程序都有自己的子域,例如App1,App2,App3。用户将使用登录页面通过主域登录,此身份验证将传递给应用程序。
2)我需要域来验证用户身份并将身份验证传递给子域。子域只允许访问经过身份验证的用户。 ASP.NET允许将身份验证传递到子域。我需要知道的是如何设置项目,以便subdomian知道身份验证是以这种方式传递的。
3)我决定沿着子域路线走下去。
http://App1.domain.com/ http://App12.domain.com/
4)我也在考虑可重用的代码。有没有办法在三个不同的子域上共享母版页,用户控件等?
答案 0 :(得分:2)
将每个集合中的Web应用程序和每个集合中的domain
属性分隔到顶级域名:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" domain="domain.com" />
</authentication>
这样,当用户在其中一个应用程序上进行身份验证时,身份验证cookie将包含域属性,并且它将被发送到此域和子域中的其他应用程序,并且用户将在其他应用程序上自动进行身份验证同样。
答案 1 :(得分:1)
前几天想到了类似的情况。我找到了两个选项来进行“动态子域注册”
在案例1中,我会在这种情况下将* .mydomain.com转发到网络服务器(IIS),并使用IIS管理API将myuser.mydomain.com重定向到物理路径,例如www.mydomain.com/myuser /
在案例2中,我只需将www.mydomain.com/myuser/*重写为myuser.mydomain.com / *
身份验证不应该是问题,我会使用过滤器或类似的东西。