多租户不加载参数

multitenant not loading parameters

这是我的代码,它不起作用:

        services.AddMultiTenant<SampleTenantInfo>()
            .WithConfigurationStore()
            .WithRouteStrategy()
            .WithPerTenantAuthentication()
            .WithPerTenantOptions<OpenIdConnectOptions>((options, tenantInfo) => {
                //options.ResponseType = tenantInfo.ResponseType;
                options.Authority = tenantInfo.OpenIdConnectAuthority;
                options.ClientId = tenantInfo.OpenIdConnectClientId;
                options.ClientSecret = tenantInfo.OpenIdConnectClientSecret;
                options.ResponseType = "code";
            });
        services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie()
    .AddOpenIdConnect(options =>
    {
        options.Prompt = "login consent"; // For sample purposes.
                });

我要解决的问题:这是一个允许多次登录但每个用户一次登录的应用程序,所以我有几个租户,用户打算 select 其中之一和那么想法是每个租户设置一个 openidconnect,因此用户被重定向到登录到 selected 租户。

我做了什么:

一开始我的代码没有withpertenantoptions,只能在其中一个租户登陆,在另一个租户不能登陆,调试看到没有设置ResponseType,所以我加了withpertenantoptions,到仅设置响应类型,但未加载其余参数,然后我根据租户添加了其余参数,但它们仍然为空。它们保存在 appsettings.file.

我正在使用 Finbuckle 来处理多租户

问题很简单,我设置了两次oidc选项,所以我选择了不好的,解决方法是删除{ options.Prompt = "登录同意"; // 用于示例目的。 }

然后在其他选项中设置所有内容