¿Es posible bloquear una página de apertura usando securityTrimmingEnabled = true
-
04-10-2019 - |
Pregunta
Tengo la costumbre SiteMapProvider y RoleProvider que trabaja en conjunto correctamente: vuelve IsAccessibleToUser
false
si el papel del usuario actual no se menciona en SiteMapNode.Roles
para la página solicitada
Así migas de pan o de menú no muestra un elemento.
Pero usuario puede escribir URL ahora mostró directamente y abrir una página. ¿Cómo puedo bloquear este tipo de comportamiento?
También tengo próximos configuración Web.config:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
Solución
public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node)
{
var roles = node.Roles.OfType<string>();
if (roles.Contains("*") || (roles.Count(r => context.User.IsInRole(r)) > 0))
{
return true;
}
else
{
throw new InsufficientRightsException();
}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow