E 'possibile bloccare una pagina l'apertura utilizzando securityTrimmingEnabled = true
-
04-10-2019 - |
Domanda
Ho personalizzato SiteMapProvider e RoleProvider che funziona insieme correttamente: restituisce IsAccessibleToUser
false
se il ruolo dell'utente corrente non è menzionata in SiteMapNode.Roles
per la pagina di richiesta ??p>.
Quindi, mollica di pane o il menu non mostra un elemento.
Ma l'utente ancora possibile digitare URL ora ha mostrato direttamente ed aprire una pagina. Come faccio a bloccare un simile comportamento?
Anche io ho le impostazioni prossimi Web.config:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
Soluzione
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();
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow