У меня есть приложение ASP.NET MVC 4. Я использую Простой членский провайдер, который позволяет поставить галочку на флажке под регистрационной формой. Если отмечено галочкой, создается постоянный cookie.ASPXAUTH, срок действия которого истекает через 100 дней с даты входа. И все работает отлично, кроме главного меню приложения.
Некоторые части меню доступны только для пользователей admin. Я использую:
@if (User.IsInRole("Administrator")) { @Html.Partial("_MainMenuPartial") }
чтобы заблокировать их от отображения для обычного пользователя. Этот подход отлично работает сразу после входа в систему. Когда я вернусь через некоторое время, и постоянный cookie используется для аутентификации меня, я зашел в систему, но
@User.IsInRole("Administrator")
возвращает "False", поэтому я не вижу элементов меню администратора. В то же время
@User.Identity.Name
возвращает правильное имя пользователя и
@User.Identity.IsAuthenticated
возвращает "True", что доказывает, что постоянный cookie работает нормально. Почему я не могу получить доступ к пользовательским ролям, даже если пользователь аутентифицирован системой?