我有一个Asp.net核心应用程序,我希望能够允许多个/不同的租户(客户端)访问相同的应用程序,但使用不同的url。我有所有租户(客户端)的公共数据库。所以这是我想要在一个域中托管我的应用程序的主要部分。然后,www.myapplication.com允许不同的租户(客户端)使用
1.www.TenantOne.myapplication.com
2.www.TenanatTwo.myapplication.com。
3.ww.{TENANCY_NAME}.myapplication.com
我找不到任何关于如何做到这一点的信息,我被卡住了。该怎么做呢?请提供代码。谢谢。
发布于 2017-03-31 01:22:26
对不起,你得先做点什么,然后再回来找别人帮你。
我要说的是,这完全是基于域的通配符映射和身份验证逻辑中的更改,以从URL获取租户id。一旦您确定了租户,您只需登录,然后继续。例如,您可能有一个包含租户详细信息的数据库
tenant1 | tenant1.company.com | guid-ofthe-tenant | etc...
获得URL后,在上表中查找并获得租户代码,然后选择登录模式,然后继续。
如果你已经尝试过一些东西,如果它还不起作用,我们将很乐意为你指出。
发布于 2017-07-11 21:56:16
发布于 2018-06-10 03:58:26
我相信你正在寻找的方法与下面的url上的文章类似。
https://dotnetthoughts.net/building-multi-tenant-web-apps-with-aspnet-core/
在它中,作者将请求URL拆分为由地址中的点分隔的字符串数组。然后将变量“subdomain”设置为该数组的第一个元素。在你的问题中,看起来你可能想要使用数组中的第二个元素,但你已经明白了。
var fullAddress = actionExecutingContext.HttpContext?.Request?
.Headers?["Host"].ToString()?.Split('.');
var subdomain = fullAddress[0];
//do something, get something, return something
如何使用这些数据由您决定。本文的作者创建了一个filter属性,但有许多可能性,比如将租户名称作为参数传递给服务函数。
https://stackoverflow.com/questions/43114075
复制相似问题