MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

'IdentityContext' não pôde ser encontrado (está faltando uma diretiva using ou uma referência de assembly)


Eu pessoalmente usei o mesmo exemplo para minha implementação de identidade Asp.net sobre Mongodb e a razão pela qual você está perdendo essa classe é porque a amostra é bastante antiga e a extensão Identity para mongodb da qual ela depende é aqui e já progrediu para versões atualizadas.

Eu não posso ir com a descrição completa aqui de como eu usei, mas certamente posso apontar para meu projeto de código aberto aqui onde aprendi com o exemplo que você mencionou. Espero que isso resolva seu problema na implementação do Asp.net Identity com o Mongodb.

Atualizar


  1. Se você deseja ter exatamente a mesma solução que Attila Hajdrik escreveu no repositório git, certifique-se de ter exatamente a mesma versão de pacote definida pelo AspNet.Identity.MongoDB aqui . Como a própria biblioteca agora foi atualizada e presumo que você atualizou todos os pacotes nuget ou recriou toda a solução escrita no repositório do github de acordo com sua necessidade. Em ambos os casos, você pode acabar com uma versão do AspNet.Identity.MongoDB que não deseja usar. Esta deve ser a solução mais curta e fácil para sua necessidade.

  2. Agora, na minha solução mencionada acima do meu repositório do github. Eu usei meu próprio IAccountContext e usei UserManager<User> como meu AccountManager básico e UserStore<User> como minha loja subjacente para o gerente. Aqui User class é a classe Identity que estou usando, derivada de IdentityUser .

Tecnicamente, você pode construir seu próprio contexto facilmente e não precisa realmente confiar no exemplo fornecido ao máximo.

Meu exemplo AccountContext seria:
public class AccountContext : IAccountContext
{        
    private readonly IDbContext dbContext;
    private readonly AccountManager accountManager;

    public AccountContext(
        IDbContext dbContext,         
        AccountManager accoutnManager)
    {
        this.dbContext = dbContext;
        this.accountManager = accoutnManager;        
    }
// Your own stuff here
}

Aqui, AccountManager é um UserManager<T> derivado e leva um IUserStore<User> em seu construtor. Praticamente lhe dá mais liberdade sobre como você deseja projetar sua camada de identidade. :)

Espero que isto ajude.