это очень любопытно.
У меня есть приложение MVC 5, которое использует OWIN для аутентификации пользователей с пользовательскими хранилищами пользователей и ролей.
У контроллера учетной записи есть метод Login, который вызывает
var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: false);
Когда«result» - это SignInStatus.Success, я звоню:
User.IsInRole("Administrator")
Возвращает «false», даже если пользователь находится в этой роли. После выполнения метода Login страница перенаправляется на домашнюю страницу. Этот контроллер домашней страницы имеет метод «OnActionExecuting». Внутри этого метода есть еще один вызов
User.IsInRole("Administrator")
. В этот момент IsInRole возвращает true.
Чем объясняется такое поведение?
РЕДАКТИРОВАТЬ: У меня естьвызывается
User.Identity.GetUserId()
после SignInManager.PasswordSignInAsync и возвращает ноль. Теперь возникает вопрос, почему SignInManager.PasswordSignInAsync фактически не входит в систему, если пользователь не обновляется?
Спасибо, Хайме