【问题标题】:creating subdomains and Sharing authentication on 2 different project/solution/application在 2 个不同的项目/解决方案/应用程序上创建子域和共享身份验证
【发布时间】:2011-11-23 09:49:05
【问题描述】:

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

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

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

3) 我决定走子域路线。

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

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

【问题讨论】:

    标签: .net asp.net asp.net-mvc asp.net-authentication


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      在情况 2 中,我只需将 www.mydomain.com/myuser/* 重写为 myuser.mydomain.com/*

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 2020-03-07
        • 2013-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多