Ik heb persoonlijk hetzelfde voorbeeld gebruikt voor mijn Asp.net Identity-implementatie via Mongodb en de reden dat je die klasse mist, is omdat het voorbeeld behoorlijk oud is en de identiteitsextensie voor mongodb waarvan het afhankelijk is hier en het is al gevorderd tot bijgewerkte versies.
Ik kan niet meegaan met de volledige beschrijving hier over hoe ik het heb gebruikt, maar ik kan je zeker verwijzen naar mijn open source-project hier waar ik heb geleerd van het voorbeeld dat je noemde. Ik hoop dat het uw probleem bij het implementeren van Asp.net Identity met Mongodb zou oplossen.
Bijwerken
-
Als je exact dezelfde oplossing wilt hebben die Attila Hajdrik schreef in de git repo, zorg er dan voor dat je exact dezelfde pakketversie hebt die de AspNet.Identity.MongoDB heeft gedefinieerd hier . Omdat de bibliotheek zelf nu zelf is geüpgraded en ik neem aan dat je ofwel alle nuget-pakketten hebt bijgewerkt of de hele oplossing opnieuw hebt gemaakt die in de github-repo is geschreven volgens jouw behoefte. In beide gevallen kunt u eindigen met een versie van AspNet.Identity.MongoDB die u niet wilt gebruiken. Dit zou de kortste en gemakkelijkste oplossing voor uw behoefte moeten zijn.
-
Nu op mijn hierboven genoemde oplossing van mijn github-repo. Ik gebruikte mijn eigen
IAccountContext
en ik gebruikteUserManager<User>
als mijn basis AccountManager enUserStore<User>
als mijn onderliggende winkel voor de manager. HierUser
class is de identiteitsklasse die ik gebruik en die is afgeleid vanIdentityUser
.
Technisch gezien kun je eenvoudig je eigen context bouwen en hoef je niet volledig op het gegeven voorbeeld te vertrouwen.
Mijn voorbeeld AccountContext zou zijn:
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
}
Hier, AccountManager
is een UserManager<T>
afgeleide en er is een IUserStore<User>
. voor nodig in zijn constructor. Het geeft u praktisch meer vrijheid over hoe u uw identiteitslaag wilt ontwerpen. :)
Ik hoop dat dit helpt.