我正在使用ASP。. NET身份识别框架(ASP。. NET MVC 5)在多租户应用程序中。
我可以很容易地集成一个Facebook应用程序。它可以在Startup.cs.
中配置它的作用域/凭据等。但是我有x个域名和x个Facebook应用程序,我将决定在运行时使用哪些凭据。
如何动态更改/设置外部登录提供者设置,而不是在应用程序启动时?
Identity 2 Framework不支持设置或注册动态外部登录提供者(例如能够更改Facebook的clientId凭据)。您将不得不手动配置我们自己的解决方案。
该框架基于OWIN,因此控制器只能通过使用共享上下文将消息传递给身份验证提供者。由ASP提供的。. NET Identity系统不支持转发这类消息(例如要更改的凭据)。OWIN不允许您更改已经绑定的中间件对象的设置。
此外,微软为每个主要的外部登录提供者(例如Facebook)提供的身份系统扩展是使用内部类构建的,我们不能继承或修改。所以这让我们卡住了。
你可以为facebook扮演自己的OWIN中间件提供商的角色,并使用共享上下文——这应该是现代的做事方式。或者使用常规的MVC系统来处理这个。您可以使用源代码为他们的身份Facebook扩展作为指导。