User.IsInRole não funciona
Eu tenho o aplicativo ASP.NET MVC 4. Eu uso Simple Membership Provider permitindo assinalar lembre-me checkbox sob o formulário de login. Se marcado, é criado o cookie persistente .ASPXAUTH, que expira em 100 dias a partir da data de login. E tudo funciona bem, além do menu principal do aplicativo.
Algumas partes do menu estão disponíveis apenas para usuários administradores. Eu uso:
@if (User.IsInRole("Administrator")) { @Html.Partial("_MainMenuPartial") }
para bloqueá-los de serem renderizados para o usuário regular. Essa abordagem funciona bem logo após o login no sistema. Quando eu volto depois de um tempo e um cookie persistente é usado para me autenticar, eu entro na minha conta, mas
@User.IsInRole("Administrator")
retorna "False", por isso não consigo ver itens de menu do administrador. Ao mesmo tempo
@User.Identity.Name
retorna o nome de login adequado e
@User.Identity.IsAuthenticated
retorna "True", o que prova que o cookie persistente funciona bem. Por que não consigo acessar as funções do usuário mesmo que o usuário seja autenticado pelo sistema?