Есть задача: asp.net selfhost, Entity, Identity, mysql, code-first.
На этом этапе все работает, запросы проходят, база создается, данные записываются, читаются.
Но вот UserManager не хочет, Request.GetOwinContext() значение дает, но GetUserManager на нем null возвращает. Гугл говорит, что в конфигурации нужно
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
Но это у меня с самого начало было.
Порядок такой, все стандартно:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
public ApplicationUserManager(IUserStore<ApplicationUser> store)
: base(store)
{
}
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
// Настройка логики проверки имен пользователей
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
// Настройка логики проверки паролей
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false,
};
manager.EmailService = new EmailService();
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null)
{
manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
return manager;
}
}
В Startup.cs
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
Ну и потом я пытаюсь получить свой менеджер
Request.GetOwinContext().GetUserManager<ApplicationUserManager>()
На всякий случай пробовал и так
HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>()
Не работает.
Пол дня уже просидел над этой фигней. Что я упустил? Какие есть варианты?