O asp.net RoleManager realmente armazenar em cache os papéis para um usuário em um cookie se assim configurado?

StackOverflow https://stackoverflow.com/questions/836043

  •  08-07-2019
  •  | 
  •  

Pergunta

Na minha web.config Tenho a Role Manager configurado da seguinte forma:

<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" 
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" 
cookieSlidingExpiration="true" cookieProtection="All">

No entanto, em nosso RoleProvider costume que seria parece que o método GetRolesForUser está sempre sendo chamado, e não como eu teria esperado, o RoleManager servindo-se os papéis de seu cookie.

Estamos usando algo parecido para obter os papéis para um usuário:

string[] myroles = Role.GetRolesForUser("myuser");

Existe algo que eu estou faltando na configuração ou no uso do RoleManager

Foi útil?

Solução

Está faltando defaultProvider="yourRoleProviderName" em seu web.config.

Você chama o método abaixo para qualquer usuário ou somente para usuário atual? caching de cookie funciona apenas para funções de usuários atuais.

Role.GetRolesForUser("myuser");

Verifique se bolinho .ASPROLES é enviado para o navegador após a chamada punho de IsInRole ou GetRoles método.

Outras dicas

Ele pode funcionar melhor se fosse para mudar o valor na sua cacheRolesInCookie para true.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top