¿El Asistente de roles asp.net realmente almacena en caché los roles de un usuario en una cookie si está configurado?

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

  •  08-07-2019
  •  | 
  •  

Pregunta

En mi web.config tengo el Role Manager configurado de la siguiente manera:

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

sin embargo, en nuestro RoleProvider personalizado parece que siempre se llama al método GetRolesForUser, en lugar de como esperaba, el RoleManager sirve los roles desde su cookie.

Estamos usando algo como obtener los roles para un usuario:

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

¿Hay algo que me falta en la configuración o en el uso del RoleManager

¿Fue útil?

Solución

Falta defaultProvider = " yourRoleProviderName " en su web.config.

¿Llama al método siguiente para algún usuario o solo para el usuario actual? El almacenamiento en caché de cookies solo funciona para los roles de usuario actuales.

Role.GetRolesForUser("myuser");

Verifique que la cookie .ASPROLES se envíe al navegador después de la primera llamada del método IsInRole o GetRoles .

Otros consejos

Podría funcionar mejor si tuviera que cambiar el valor en su cacheRolesInCookie a true .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top