我试图创建一个网站与子域asp.net mvc。但我不知道该怎么做。当设置这个新的解决方案在visual studio是最好有一个不同的项目为每个子域或有一个项目?显然,这样做有一些直接的好处,比如在不影响其他子域的情况下向一个子域发布更新。规格如下:
1)我有很多应用程序,每个应用程序都有自己的子域,例如App1, App2, App3。用户将通过带有登录页面的Main域登录,此身份验证将向下传递给应用程序。
2)我需要域对用户进行认证,并将认证传递给子域。子域只允许通过身份验证的用户访问。ASP。. NET允许将身份验证传递给子域。我需要知道的是如何设置项目,以便子域知道以这种方式通过身份验证。
我决定走子域路由。
http://App1.domain.com/http://App12.domain.com/
4)我也在考虑可重用代码。是否有办法在三个不同的子域上共享主页、用户控件等?
分隔web应用程序和web。设置domain
属性为顶级域:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" domain="domain.com" />
</authentication>
这样,当用户在其中一个应用程序上进行身份验证时,身份验证cookie将包含域属性,并将其发送到该域和子域的其他应用程序,并且用户也将自动在其他应用程序上进行身份验证。
几天前想到了一个类似的情况。我发现两个选项做"在飞行子域注册"
- 注册根域名时,子域名注册不需要时间! 重写URL
在情况1中,我会将*.mydomain.com转发到web服务器(IIS),并使用IIS管理API将myuser.mydomain.com重定向到物理路径,如www.mydomain.com/myuser/
在情况2我只需重写www.mydomain.com/myuser/*到myuser.mydomain.com/*
身份验证应该不是问题,我会使用过滤器或类似的东西