User.IsInRole не работает

У меня есть приложение ASP.NET MVC 4. Я использую Simple Membership Provider, позволяющий установить флажок запомнить меня под формой входа. Если этот флажок установлен, создается постоянный файл cookie .ASPXAUTH, срок действия которого истекает через 100 дней после даты входа. И все работает отлично, кроме основного меню приложения.

Некоторые части меню доступны только для администраторов. Я использую:

@if (User.IsInRole("Administrator")) { @Html.Partial("_MainMenuPartial") }

заблокировать их от рендеринга для обычного пользователя. Этот подход отлично работает сразу после входа в систему. Когда я возвращаюсь через некоторое время и постоянный cookie-файл используется для аутентификации, я вхожу в систему, но

@User.IsInRole("Administrator")

возвращаетсяЛожь" Так что я могу'не видеть пункты меню администратора. В то же время

@User.Identity.Name

возвращает правильное имя пользователя и

@User.Identity.IsAuthenticated

возвращаетсяПравда", что доказывает, что постоянный cookie работает нормально. Почему можноt Я получаю доступ к ролям пользователей, даже если пользователь аутентифицирован системой?

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

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