首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心2.0+中的多租户

ASP.NET核心2.0+中的多租户
EN

Stack Overflow用户
提问于 2018-03-12 21:24:46
回答 1查看 5K关注 0票数 4

Bakground:我想在ASP.NET核心中开发一个多租户应用程序,并且一直在研究BenFosters萨斯基特库,它似乎为多租户应用程序中的常见问题提供了很好的解决方案。

问题: SaasKit有一个UsePerTenant方法,根据当前租户的不同,它很适合每个请求执行不同的事情。

我的目标是使用UsePerTenant方法,并通过依赖注入注入不同的IOptions对象。这可以在认证中间件中使用,如

代码语言:javascript
复制
AddAuthentication().AddCookie(..).AddOpenIdConnect(...)

ConfigureServices方法中配置的Startup.cs中的

代码语言:javascript
复制
public class Startup
{
    // Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        ...
    }

    // Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
        ...
    }
}

我不能让ASP.NET 2.0+中的身份验证中间件在每个请求中使用不同的IOptions对象,因为Startup.cs文件中的ConfigureServices方法只能在每个应用程序启动时运行一次,而对于ASP.NET管道中的每个传入/传出请求,应该在Configure方法中使用UsePerTenant方法。

问题:如何基于当前租户动态更改ConfigureServices方法中的cookie和OpenID连接选项?

EN

回答 1

Stack Overflow用户

发布于 2018-04-25 15:52:13

我找到了一种为任何类型的ASP.NET核心选项(包括cookie或openID连接)获取每个租户选项的好方法。我已经将其封装到一个名为Finbuckle.MultiTenant的框架中。

基本上可以归结为这样的设置:

代码语言:javascript
复制
services.AddMultiTenant().
            WithInMemoryStore()).
            WithRouteStrategy().
            WithPerTenantOptionsConfig<CookieAuthenticationOptions>((o, tenantContext) => o.Cookie.Name += tenantContext.Id);

如果您很好奇,请访问我的这里以获得更多信息:https://www.finbuckle.com/MultiTenant

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

https://stackoverflow.com/questions/49244634

复制
相关文章

相似问题

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