Multi tenant Outsystems:在多租户应用程序中,是否可能在不同租户中有相同的用户

Multi tenant Outsystems:在多租户应用程序中,是否可能在不同租户中有相同的用户,multi-tenant,outsystems,Multi Tenant,Outsystems,我创建了一个多租户应用程序,其中每个租户都有不同的用户集。我正在尝试实现一个功能,同一个用户可能存在于不同的租户中。outsystems是否提供此类功能,或者我必须创建自定义逻辑? 现在,我确实在两个不同的租户中创建了一个具有相同用户名的用户,在登录过程中,我向用户显示如何选择租户。但在更改租户并登录到该租户时,环境不会切换到用户选择的租户 下面是交换租户和登录客户的逻辑图 在调试过程中,我看到在执行TenantSwitch操作后,它确实更改了Site.TenantID属性,但在用户登录操作恢

我创建了一个多租户应用程序,其中每个租户都有不同的用户集。我正在尝试实现一个功能,同一个用户可能存在于不同的租户中。outsystems是否提供此类功能,或者我必须创建自定义逻辑? 现在,我确实在两个不同的租户中创建了一个具有相同用户名的用户,在登录过程中,我向用户显示如何选择租户。但在更改租户并登录到该租户时,环境不会切换到用户选择的租户

下面是交换租户和登录客户的逻辑图

在调试过程中,我看到在执行TenantSwitch操作后,它确实更改了Site.TenantID属性,但在用户登录操作恢复为第一个租户而不是所选的用户之后。

当您使用用户登录()时,系统会将您登录到它在具有该用户名的数据库中找到的第一个租户,从而忽略您的TenantSwitch()

因此,如果您想在您的案例中登录到一个特定的租户,您需要更加明确,而是在租户切换之后使用login()操作

为了彻底解释这一点,请使用示例代码,从27:20分钟开始查看下面的deepdive。

当您使用User_Login()时,系统将在数据库中找到的第一个拥有该用户名的租户中为您登录,从而忽略您的租户开关()

因此,如果您想在您的案例中登录到一个特定的租户,您需要更加明确,而是在租户切换之后使用login()操作


关于这一点的详细解释,请使用示例代码,从27:20分钟开始查看下面的deepdive。

由于OutSystems将用户(和所有实体)分配给特定的租户,因此这一点不可用。属于单个租户模块的实体被分配给默认租户

OutSystems在每个实体上使用hidden.Tenant\u Id属性来指示用户属于哪个租户。通过选择用户实体的此属性,单击“更多”,可以取消隐藏该属性。。。然后勾选“高级”选项卡中的相关框。然后,您可以直接访问该属性,但请注意,这将妨碍OutSystems自动执行某些操作,以确保您访问特定于租户的数据


当您使用User_Login操作时,OutSystems将从User.tenant_Id属性推断要使用的租户,而不管您之前已将其切换到哪个租户。用户需要为他们需要使用的每个租户提供一个帐户,但没有理由不能在登录前通过操作系统获取正确的用户名在后台完成。不过,您需要确保它们都保持同步,尤其是ofc的密码。

由于OutSystems将用户(和所有实体)分配给特定租户,因此这不是现成的。属于单个租户模块的实体被分配给默认租户

OutSystems在每个实体上使用hidden.Tenant\u Id属性来指示用户属于哪个租户。通过选择用户实体的此属性,单击“更多”,可以取消隐藏该属性。。。然后勾选“高级”选项卡中的相关框。然后,您可以直接访问该属性,但请注意,这将妨碍OutSystems自动执行某些操作,以确保您访问特定于租户的数据


当您使用User_Login操作时,OutSystems将从User.tenant_Id属性推断要使用的租户,而不管您之前已将其切换到哪个租户。用户需要为他们需要使用的每个租户提供一个帐户,但没有理由不能在登录前通过操作系统获取正确的用户名在后台完成。您需要确保它们都保持同步,尤其是C的密码。

我遵循您的方法,在用户登录后检索用户id并执行租户切换,然后执行登录操作。我遵循您的方法,在用户登录后检索用户id并执行租户切换,然后执行登录操作。