首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在asp.net-core中实现多租户功能

如何在asp.net-core中实现多租户功能
EN

Stack Overflow用户
提问于 2017-03-30 17:42:31
回答 3查看 2.8K关注 0票数 1

我有一个Asp.net核心应用程序,我希望能够允许多个/不同的租户(客户端)访问相同的应用程序,但使用不同的url。我有所有租户(客户端)的公共数据库。所以这是我想要在一个域中托管我的应用程序的主要部分。然后,www.myapplication.com允许不同的租户(客户端)使用

1.www.TenantOne.myapplication.com

2.www.TenanatTwo.myapplication.com。

3.ww.{TENANCY_NAME}.myapplication.com

我找不到任何关于如何做到这一点的信息,我被卡住了。该怎么做呢?请提供代码。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-03-31 01:22:26

对不起,你得先做点什么,然后再回来找别人帮你。

我要说的是,这完全是基于域的通配符映射和身份验证逻辑中的更改,以从URL获取租户id。一旦您确定了租户,您只需登录,然后继续。例如,您可能有一个包含租户详细信息的数据库

代码语言:javascript
复制
tenant1 | tenant1.company.com | guid-ofthe-tenant | etc...

获得URL后,在上表中查找并获得租户代码,然后选择登录模式,然后继续。

如果你已经尝试过一些东西,如果它还不起作用,我们将很乐意为你指出。

票数 0
EN

Stack Overflow用户

发布于 2017-07-11 21:56:16

正如Saravanan建议的那样,这些类型的问题不属于这里。首先,我建议您开始寻找是否有SaaSKit等框架可用于将多租户层添加到管道中。

最重要的部分是知道每个请求来自哪里。使用子域是实现这一目标的好方法,中间件是“识别”租户的好地方。您可以有一个数据库来持久化租户,但实现完全取决于您。我还写了一个关于这个主题的小article。虽然它不是ASP.NET核心,但原则仍然适用。

票数 0
EN

Stack Overflow用户

发布于 2018-06-10 03:58:26

我相信你正在寻找的方法与下面的url上的文章类似。

https://dotnetthoughts.net/building-multi-tenant-web-apps-with-aspnet-core/

在它中,作者将请求URL拆分为由地址中的点分隔的字符串数组。然后将变量“subdomain”设置为该数组的第一个元素。在你的问题中,看起来你可能想要使用数组中的第二个元素,但你已经明白了。

代码语言:javascript
复制
var fullAddress = actionExecutingContext.HttpContext?.Request?
     .Headers?["Host"].ToString()?.Split('.');

var subdomain = fullAddress[0];
//do something, get something, return something

如何使用这些数据由您决定。本文的作者创建了一个filter属性,但有许多可能性,比如将租户名称作为参数传递给服务函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43114075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档