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

возвращает «True», что доказывает, что постоянный файл cookie работает нормально. Почему я не могу получить доступ к ролям пользователей, даже если пользователь аутентифицирован системой?

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

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