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
-
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.
-
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 jsemUserManager<User>
jako můj základní AccountManager aUserStore<User>
jako můj základní obchod pro manažera. ZdeUser
class je třída Identity, kterou používám a která je odvozena odIdentityUser
.
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.