创建子域并在两个不同的项目/解决方案/应用程序上共享身份验证



我试图创建一个网站与子域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将包含域属性,并将其发送到该域和子域的其他应用程序,并且用户也将自动在其他应用程序上进行身份验证。

几天前想到了一个类似的情况。我发现两个选项做"在飞行子域注册"

  1. 注册根域名时,子域名注册不需要时间!
  2. 重写URL

在情况1中,我会将*.mydomain.com转发到web服务器(IIS),并使用IIS管理API将myuser.mydomain.com重定向到物理路径,如www.mydomain.com/myuser/

在情况2我只需重写www.mydomain.com/myuser/*到myuser.mydomain.com/*

身份验证应该不是问题,我会使用过滤器或类似的东西

最新更新