¿Por qué IsInRole siempre devuelve falso?

Estoy creando una aplicación MVC5 con ASP.NET Identity 2.0 y EF 6.1.1.

Esto es parte de mi método de inicio de sesión actual:

    [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

Esto funciona bien hasta que llegue a UserManager.IsInRole (). Esto siempre devuelve falso.

En algún lugar leí que IsInRole () fallará si el usuario correspondiente no ha iniciado sesión. Pero desde que paso SignInManager.PasswordSignInAsync () creo que esto debería estar bien.

Y sí, he revisado la base de datos muchas veces y con mucho cuidado;) Mi usuario de prueba y mi rol de prueba "OfficeUser" están definitivamente asignados entre sí.

Alguien tiene una idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta