基于SAAS的移动应用程序

时间:2014-04-06 17:03:40

标签: asp.net saas

我们正在asp.net开发基于SAAS的移动应用程序。

在我们的业务领域,我们拥有不同的公司,并且所有流程都属于这些公每个公司都有一个不同的URL,超级管理员将在前端创建公司,然后解析网址以加载每个公司特定的徽标和其他设置。

我们对不同公司的网址管理感到困惑。我们应该如何处理不同的子域名网址到同一个物理位置?并且请分享我们必须遵循的任何其他指南,以开发基于SaaS的网站。

2 个答案:

答案 0 :(得分:5)

通过URL识别租户是开发SaaS应用程序的标准。

这也非常简单直接。根据我的经验,我建议你以下

  1. 将IIS站点配置为使用根级域(即yourawesomeapp.com)。这会使所有子域请求都访问同一站点。
  2. 将您的租户网址(如tenant1.yourawesomeapp.com,tenant2.yourawesomeapp.com等)存储在您的租户表中
  3. 告诉您的租户使用该网址访问该应用
  4. 在PostAuthenticateRequest事件获取当前请求URL中编写HttpModule并使用TenantURLMapping条目对其进行验证(在应用程序启动时缓存字典中的url< - >租户映射以提高性能)
    • 如果请求域不在TenantURLMapping中;拒绝访问
    • 如果请求已通过身份验证,请验证经过身份验证的租户网址/ ID与当前网址相同,否则拒绝访问(登录时租户网址/ ID可以加密格式存储在Cookie中)
    • 加载所需的设置并将其存储在HttpContext.Items中,以便在请求的后半部分使用。

答案 1 :(得分:3)

您要开发的内容称为多租户应用程序。正确的术语将为您提供大量信息。

在网址管理方面,有两种方法:

从技术角度来看,两种方法都很简单。

在前一种情况下,有一点需要注意 - 每次添加新租户时,都必须将新标头绑定到现有的iis站点。这需要手动或自动iis自动化,但仍然可以将多个标头绑定到同一站点。获取当前请求的租户名称只是读取HttpContext.Current.Request.Url的值。

在后一种情况下,创建新实例可能就像在[租户 - >中创建新条目一样简单。 connectionstring]映射。获取当前请求的租户名称涉及某种URL映射外观 - 如果网站是使用MVC或WebAPI开发的,则只需在路由条目中添加其他段。