Аз лично използвах същия пример за моето внедряване на Asp.net Identity над Mongodb и причината да пропускате този клас е поради факта, че извадката е доста стара и разширението на Identity за mongodb, от което зависи, е тук и вече е достигнал до актуализирани версии.
Не мога да продължа с пълното описание тук за това как го използвах, но със сигурност мога да ви насоча към моя проект с отворен код тук където научих от примера, който споменахте. Надявам се, че ще реши проблема ви с внедряването на Asp.net Identity с Mongodb.
Актуализация
-
Ако искате да имате точно същото решение, което Attila Hajdrik е написал в git repo, моля, уверете се, че имате точно същата версия на пакета, дефинирана от AspNet.Identity.MongoDB тук . Тъй като самата библиотека вече е надстроена сама по себе си и предполагам, че сте актуализирали всички пакети nuget или сте пресъздали цялото решение, написано в репото на github според вашите нужди. И в двата случая може да се окажете с версия на AspNet.Identity.MongoDB, която не искате да използвате. Това трябва да е най-краткото и най-лесното решение за вашите нужди.
-
Сега относно моето решение, споменато по-горе, от моето репо в github. Използвах собствен
IAccountContext
и използвахUserManager<User>
като моя базов AccountManager иUserStore<User>
като мой основен магазин за мениджъра. ТукUser
клас е класът за самоличност, който използвам и който е извлечен отIdentityUser
.
Технически можете лесно да изградите свой собствен контекст и наистина не е нужно да разчитате изцяло на дадения пример.
Моят примерен AccountContext би бил:
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
}
Тук, AccountManager
е UserManager<T>
производно и отнема IUserStore<User>
в неговия конструктор. На практика ви дава повече свобода за това как искате да проектирате своя слой за идентичност. :)
Надявам се това да помогне.