Est-il possible de bloquer une page d'ouverture à l'aide securityTrimmingEnabled = true
-
04-10-2019 - |
Question
Je coutume SiteMapProvider et RoleProvider qui fonctionne ensemble correctement: retourne IsAccessibleToUser
false
si le rôle de l'utilisateur actuel ne figure pas dans SiteMapNode.Roles
pour la page demandée
mie de pain ou le menu ne montre pas un élément.
Mais l'utilisateur peut toujours taper l'URL montré maintenant directement et ouvrir une page. Comment puis-je bloquer un tel comportement?
J'ai aussi suivant les paramètres web.config:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
La solution
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();
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow