Почему IsInRole всегда возвращает false?

Я создаю приложение MVC5 с ASP.NET Identity 2.0 и EF 6.1.1.

Это часть моего текущего метода входа в систему:

    [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

Это работает нормально, пока я не нажму UserManager.IsInRole (). Это всегда возвращает ложь.

Где-то я читал, что IsInRole () потерпит неудачу, если соответствующий пользователь не вошел в систему. Но так как я передаю SignInManager.PasswordSignInAsync (), я считаю, что это должно быть хорошо.

И да, я проверял базу данных много раз и очень тщательно;) Мой тестовый пользователь и моя тестовая роль "OfficeUser" определенно назначены друг другу.

У кого-нибудь есть идея?

Ответы на вопрос(1)

Ваш ответ на вопрос