繁体   English   中英

ASP.NET Core多租户站点-会话过期后如何保留租户ID?

[英]ASP.NET Core Multi-Tenant Site - How do you retain tenant id after session expires?

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

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

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

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

最好在每个客户端查询中传递承租人。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM