ASP.NET核心多租户站点 - 会话到期后如何保留租户ID?

问题描述 投票:0回答:2

我有一个包含多个租户的ASP.NET Core MVC站点。租户ID在登录的GET请求上的查询字符串中传入并保持在会话中。显示导航上的租户名称和其他一些特定于租户的自定义。

如果用户注销,我可以从会话中获取租户ID,将其放回查询字符串,然后重定向到登录页面,以便用户能够重新登录。

我的问题是,当会话超时时,MVC将重定向到我的登录页面以开始新的会话,但我无法将租户ID添加到我需要的查询字符串以显示正确的租户信息。

如何在不使用会话的情况下在多租户环境中保留租户ID?

asp.net asp.net-mvc asp.net-core
2个回答
1
投票

最好通过每个客户端查询传递租户。

作为一种选择,您可以在登录时将选定的租户保存在单独的cookie中,这样您就可以在此cookie存在时知道租户。

此外,请记住,许多网站/应用程序允许用户随时更改语言/租户,而不仅仅是在登录时。


0
投票

不要使用会话。将租户ID作为声明添加到经过身份验证的用户。您可以将其作为登录表单中的字段添加,而不是将租户ID附加到URL以进行初始设置。据推测,无论如何,身份验证应该与租赁相关联,所以无论如何这应该更理想。换句话说,用户选择他们的租户,然后输入他们的用户名/密码进行登录。然后,您还可以执行检查,例如在登录期间是否实际允许用户访问该租户,以及设置租户ID声明。

© www.soinside.com 2019 - 2024. All rights reserved.