هل من الممكن منع صفحة من الفتح باستخدام SecurityTrimmingEnabled = True
-
04-10-2019 - |
سؤال
لديّ مخصص sitemapprovider و roleprovider الذي يعمل معًا بشكل صحيح: IsAccessibleToUser
عائدات false
إذا لم يتم ذكر دور المستخدم الحالي في SiteMapNode.Roles
للصفحة المطلوبة.
لذا فإن فتات الخبز أو القائمة لا تعرض عنصرًا.
لكن لا يزال بإمكان المستخدم الكتابة الآن عرض عنوان URL مباشرة وفتح صفحة. كيف يمكنني منع مثل هذا السلوك؟
أيضا لدي إعدادات web.config التالية:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
المحلول
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();
}
}
لا تنتمي إلى StackOverflow