У меня странная проблема, и я не могу ее понять. У меня есть форма входа в систему. Этот вид отображается внутри макета. В этом макете я использую User.IsInRole ("roleName"), чтобы настроить его в зависимости от роли текущего пользователя. Работает нормально.
В моем проекте (построенном на основе шаблона mvc) есть действие входа в систему с выражением "var result = await SignInManager.PasswordSignInAsync (...)". Я проверяю значение "result". Если он равен SignInStatus.Success, я использую User.IsInRole ("roleName"), чтобы определить роль пользователя и перенаправить его на какое-то другое действие. И вот проблема. User.IsInRole ("roleName") возвращает false. User.IsAuthenticated также является ложным. Это почему? Как справиться с этой ситуацией?
Я просто хочу перенаправить пользователя на определенное действие - каждый тип пользователя имеет свою первую страницу, поэтому мне нужно определить роль пользователя после того, как он войдет в систему.
Спасибо за помощь.
User
в контроллере не обновится до следующего запроса, поэтому, даже если вы вошли в систему,User
все еще не аутентифицирован. Я думаю, для этого было бы лучше, если бы вы нашли пользователя в базе данных и запросили роли в этом экземпляре. - person Chris Pratt   schedule 19.11.2014