我使用的是带有ASP.NET Core2的IdentityServer4,我使用的是多租户的Saaskit多租户。随着Core2的最新变化,Configure():AddXYZ身份验证已经被ConfigureService():AddXYZ取代。
ConfigureService只运行一次,而不是每个租户。因此,所有租户都需要支持相同的身份验证。比如Cookie和Google。(我们可以通过使用IConfigureNamedOptions接口实现一个类,为每个租户配置单独的身份验证。
但是,如何才能让一个租户使用Google身份验证,而另一个租户使用Microsoft身份验证呢?我需要为每个租户注册身份验证中间件。在ASP.net核心1中,这是可能的,因为我们在UsePerTenant方法内部注册了身份验证。但Asp.net酷睿2并非如此。
期待您的帮助!
发布于 2018-04-20 19:21:49
您可以完全控制最终用户的登录流程,因此,一旦您知道他们是哪个租户,就可以调用您喜欢的任何方案。您目前如何解析租户?
(非常简化的) psuedo MVC代码可能如下所示:
var tenantConfig = resolveTenantConfig(Request);
return Challenge(tenantConfig.Scheme);长话短说,您不必将中间件连接起来以实现自动化,如果您愿意,可以在MVC框架中编写自己的决策逻辑。
https://stackoverflow.com/questions/49938215
复制相似问题