sql >> Databáze >  >> NoSQL >> MongoDB

„IdentityContext“ nebyl nalezen (chybí vám direktiva using nebo odkaz na sestavení)

Osobně jsem použil stejný příklad pro svou implementaci Asp.net Identity přes Mongodb a důvod, proč vám tato třída chybí, je ten, že vzorek je dost starý a rozšíření identity pro mongodb, na kterém závisí, je zde a již postoupil do aktualizovaných verzí.

Nemohu zde uvést úplný popis toho, jak jsem to použil, ale určitě vás mohu odkázat na svůj open source projekt zde kde jsem se naučil z příkladu, který jste zmínil. Doufám, že by to vyřešilo váš problém s implementací Asp.net Identity s Mongodb.

Aktualizovat

  1. Pokud chcete mít přesně stejné řešení, jaké napsal Attila Hajdrik v git repo, ujistěte se, že máte přesně stejnou verzi balíčku definovanou AspNet.Identity.MongoDB zde . Protože samotná knihovna je nyní upgradována sama a předpokládám, že jste buď aktualizovali všechny balíčky nuget, nebo znovu vytvořili celé řešení napsané v github repo podle vašich potřeb. V obou případech můžete skončit s verzí AspNet.Identity.MongoDB, kterou nechcete používat. Toto by mělo být nejkratší a nejjednodušší řešení pro vaši potřebu.

  2. Nyní k mému řešení uvedenému výše z mého úložiště github. Použil jsem svůj vlastní IAccountContext a použil jsem UserManager<User> jako můj základní AccountManager a UserStore<User> jako můj základní obchod pro manažera. Zde User class je třída Identity, kterou používám a která je odvozena od IdentityUser .

Technicky si můžete snadno vytvořit svůj vlastní kontext a opravdu se nemusíte na daný příklad plně spoléhat.

Můj ukázkový AccountContext by byl:

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
}

Zde AccountManager je UserManager<T> derivát a vyžaduje IUserStore<User> v jeho konstruktoru. Prakticky vám dává větší svobodu v tom, jak chcete svou vrstvu identity navrhnout. :)

Snad to pomůže.



  1. MongoDB:Jak používat jedno schéma jako dílčí dokument pro různé kolekce definované v různých souborech

  2. Mongoose:jak používat agregát a najít společně

  3. Programově nastavit převodník MongoDb

  4. Mongodb 4:Nepodařilo se spustit mongod.service:Jednotka mongod.service nenalezena