Pregunta

Estoy usando el marco ASP.NET IDENTITY 2 (ASP.NET MVC 5) en una aplicación multi-inquilinificada.

Puedo integrar una aplicación de Facebook fácilmente.Puede configurar sus ámbitos / credenciales, etc. en startup.cs.

Pero tengo los dominios X y las aplicaciones de X Facebook, y decidiré qué credenciales usar durante el tiempo de ejecución.

¿Cómo puedo cambiar / configurar una configuración de proveedores de inicio de sesión externos dinámicamente en lugar de en la puesta en marcha de la aplicación?

¿Fue útil?

Solución

El marco de identidad 2 no admite configuración o registro de proveedores de inicio de sesión externos dinámicos (como poder alterar las credenciales de Facebook ClientID, por ejemplo). Tendrás que funcionar nuestra propia solución manualmente.

El marco se basa en OWIN y, por lo tanto, un controlador solo puede pasar mensajes al proveedor de autenticidad mediante el uso de un contexto compartido. El que proporciona el sistema de identidad ASP.NET no admite transmitir este tipo de mensajes (como las credenciales que desea alterar). Owin no le permite alterar la configuración de un objeto de middleware que ya ha sido unido.

Además, la extensión Microsoft proporciona el sistema de identidad para cada uno de los principales proveedores de inicio de sesión externos (es decir, Facebook), se estructuran mediante clases internas que no podemos heredar o modificar. Así que esto nos deja atrapados.

Puede funcionar su propio proveedor de OWIN Middidware para Facebook y usar un contexto compartido, que se supone que es la forma moderna de hacer las cosas. O simplemente use el sistema MVC regular para manejar esto. Puede usar el código fuente para su Identity Extension Facebook como guía.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top