Pergunta

Estou usando o ASP.NET Identity 2 Framework (ASP.NET MVC 5) em um aplicativo multi-tenanted.

Eu posso integrar facilmente um aplicativo no Facebook.Pode ser configurar seus escopos / credenciais etc em startup.cs.

mas eu tenho x domínios e x aplicativos do Facebook, e eu decidirei quais credenciais usar durante o tempo de execução.

Como posso alterar / definir uma configuração de fornecedores de login externos dinamicamente e não na inicialização do aplicativo?

Foi útil?

Solução

A estrutura Identity 2 não suporta a configuração ou registrar provedores de login externos dinâmicos (como poder alterar as credenciais ClientId do Facebook, por exemplo). Você terá que fundar nossa própria solução manualmente.

A estrutura é baseada na OWIN e, portanto, um controlador só pode passar mensagens para o provedor de authenication pelo uso de um contexto compartilhado. O que é fornecido pelo sistema de identidade do ASP.NET não suporta a transmissão desses tipos de mensagens (como as credenciais que deseja alterar). Owin não permite que você altere as configurações de um objeto de middleware que já foi vinculado.

Além disso, a extensão Microsoft fornece o sistema de identidade para cada um dos principais provedores de login externos (i.e. Facebook) são estruturados usando classes internas que não podemos herdar ou modificar. Então isso nos deixa preso.

Você pode fundar seu próprio provedor de middleware OWIN para o Facebook e usar um contexto compartilhado - que é suposto ser a maneira moderna de fazer as coisas. Ou basta usar o sistema MVC regular para lidar com isso. Você poderia usar o código-fonte para o seu Identity Facebook Extension como um guia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top