У меня есть следующий код с внедрением зависимости.Он не возвращает последние данные пользователя:
container.RegisterType < IDbContext, AppDbContext >(new HierarchicalLifetimeManager(), new InjectionConstructor());
container.RegisterType < ApplicationUserManager>();
container.RegisterType < IUserStore<ApplicationUser>, ApplicationUserStore>(new InjectionConstructor(typeof(IDbContext)));
var dbContext = configuration.DependencyResolver.GetService(typeof(AppDbContext)) as AppDbContext;
app.CreatePerOwinContext(() => dbContext);
var userManager = configuration.DependencyResolver.GetService(typeof(ApplicationUserManager)) as ApplicationUserManager;
app.CreatePerOwinContext(() => userManager);
public class AppDbContext : IdentityDbContext < ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim > ,
IDbContext
{
public virtual DbSet < Archive> Archive { get; set; }
static AppDbContext()
{
Database.SetInitializer < AppDbContext>(null);
}
public AppDbContext() : base("AppDbContext")
{
}
public AppDbContext(DbConnection dbConnection) : base(dbConnection, true)
{
}
public static AppDbContext Create()
{
return new AppDbContext();
}
}
var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
var user = await userManager.FindByNameAsync(context.UserName);
Эта строка кода - userManager.FindByNameAsync
всегда возвращает адрес электронной почты старого пользователя, даже если в базе данных есть новые данные электронной почты.