Sto provando a navigare nel buco nero che è l'implementazione personalizzata di Identity Membership. Il mio obiettivo in questo momento è semplicemente quello di ottenere questa linea dal mio ApiController
per recuperare correttamente il mio UserManager:Implementazione personalizzata UserManager personalizzato <IUser> in Identity 2.0
public IHttpActionResult Index()
{
var manager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager<MyUser,int>>();
//manager is null
}
Ecco il mio setup. In Configurazione s' i miei Startup
Mi è stata WebAPI e aggiungo la mia OwinContext:
app.CreatePerOwinContext<UserManager<MyUser,int>>(Create);
il mio metodo Create:
public static UserManager<User,int> Create(IdentityFactoryOptions<UserManager<MyUser,int>> options, IOwinContext context)
{
return new UserManager<MyUser,int>(new UserStore(new DbContext()));
}
il resto è l'implementazione più semplice che posso fare.
MyUser:
public class MyUser : IUser<int>
{
public int Id { get; set; }
public string UserName { get; set; }
}
MyUserStore:
public class MyUserStore : IUserStore<MyUser,int>
{
private IdentityDbContext context;
public MyUserStore(IdentityDbContext c)
{
context = c;
}
//Create,Delete, etc implementations
}
MyDbContext:
public class MyDbContext : IdentityDbContext
{
public MyDbContext() : base("Conn")
{
}
}
Questo è tutto per il bene di imparare come funziona Identità, che io sono abbastanza convinto no uno sa davvero. Voglio essere in grado di personalizzare completamente i miei utenti e ruoli alla fine, evitando Microsoft IdentityUser.
Ancora una volta, il mio problema adesso è che nel mio controller, sto ricevendo null
quando provo a recuperare il mio UserManager.
Qualsiasi aiuto è molto apprezzato.
Un'enorme affermazione su "imparare come funziona l'identità, che sono abbastanza convinto che nessuno lo sappia davvero". Il codice sorgente lo sa. Il codice sorgente è disponibile tramite il decompilatore. – trailmax
Era più un'espressione della mia frustrazione quando non riuscivo a trovare molti esempi – Jonesopolis