2

我正在尝试在 asp.net mvc 中创建一个带有子域的网站。但我不知道该怎么做。在 Visual Studio 中设置此新解决方案时,最好为每个子域使用不同的项目还是只有一个项目?这显然有一些直接的优势,例如在不触及其他子域的情况下发布更新到一个子域。这是规格:

1)我有很多应用程序,每个都有自己的子域,例如App1,App2,App3。用户将通过带有登录页面的主域登录,并且此身份验证将传递给应用程序。

2)我需要域对用户进行身份验证并将身份验证传递给子域。子域将只允许经过身份验证的用户访问。ASP.NET 允许将身份验证传递给子域。我需要知道的是如何设置项目,以便 subdomian 知道身份验证是以这种方式通过的。

3)我决定走子域路线。

http://App1.domain.com/ http://App12.domain.com/

4)我也在考虑可重用的代码。有没有办法在三个不同的子域上共享母版页、用户控件等?

4

2 回答 2

2

单独的 Web 应用程序并在每个应用程序的 web.config 中将domain属性设置为顶级域:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" domain="domain.com" />
</authentication>

这样,当用户在其中一个应用程序上进行身份验证时,身份验证 cookie 将包含域属性,并将其发送到该域和子域中的其他应用程序,并且用户也将在其他应用程序上自动进行身份验证。

于 2011-09-23T06:16:05.493 回答
1

前几天想过类似的情况。我发现了两种“即时子域注册”选项

  1. 注册根域后,子域注册很快!
  2. 重写网址

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

如果是 2,我只需将 www.mydomain.com/myuser/* 重写为 myuser.mydomain.com/*

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

于 2011-09-23T06:23:15.743 回答