context.OwinContext.GetUserManager вернуть старого пользователя - PullRequest
0 голосов
/ 21 января 2019

У меня есть следующий код с внедрением зависимости.Он не возвращает последние данные пользователя:

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 всегда возвращает адрес электронной почты старого пользователя, даже если в базе данных есть новые данные электронной почты.

...