Ist es möglich, eine Seite von Öffnung mit securityTrimmingEnabled zu blockieren = true
-
04-10-2019 - |
Frage
Ich habe benutzerdefinierte Sitemap und Roleprovider, die zusammen richtig funktioniert: IsAccessibleToUser
kehrt false
, wenn die aktuelle Rolle des Benutzers nicht in SiteMapNode.Roles
für gewünschte Seite erwähnt wird,
So Paniermehl oder Menü nicht ein Element nicht anzeigen.
Aber Benutzer können noch geben nun zeigte URL direkt und eine Seite öffnen. Wie kann ich ein solches Verhalten blockieren?
Auch habe ich neben Web.config Einstellungen:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
Lösung
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();
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow