Por que IsInRole sempre retorna falso?

Estou criando um aplicativo MVC5 com o ASP.NET Identity 2.0 e o EF 6.1.1.

Isso faz parte do meu método de login atual:

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
            return View(model);

        var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true);
        switch (result)
        {
            case SignInStatus.Success:
                {
                    var user = await UserManager.FindAsync(model.UserName, model.Password);

                    if (user == null)
                        break;

                    if (!UserManager.IsInRole(user.Id, "OfficeUser"))
                        break; // << I always hit this line - even if the user is an OfficeUser

Isso funciona bem até eu clicar em UserManager.IsInRole (). Isso sempre retorna falso.

Em algum lugar, li que IsInRole () falhará se o usuário correspondente não estiver conectado. Mas, como passo o SignInManager.PasswordSignInAsync (), acredito que isso deve estar bem.

E sim, verifiquei o banco de dados várias vezes e com muito cuidado;) Meu usuário de teste e minha função de teste "OfficeUser" são definitivamente atribuídos um ao outro.

Alguém tem uma ideia?

questionAnswers(1)

yourAnswerToTheQuestion