Я занимаюсь разработкой моего администратора в RazorPages и моего Web в контроллерах Mvc. Мне нужно динамическое разрешение, и мой код: но когда (для) обнаружение бритвенной страницы в ответной ошибке, PLZ поможет мне,
private List<ActionDtoViewModel> GetDynamicPermissionActions()
{
var actions = new List<ActionDtoViewModel>();
var actionDescriptors = _actionDescriptor.ActionDescriptors.Items;
foreach (var actionDescriptor in actionDescriptors)
{
var descriptor = (ControllerActionDescriptor)actionDescriptor;
var hasPermission = descriptor.ControllerTypeInfo.GetCustomAttribute<AuthorizeAttribute>()?
.Policy == ConstantPolicies.DynamicPermission ||
descriptor.MethodInfo.GetCustomAttribute<AuthorizeAttribute>()?
.Policy == ConstantPolicies.DynamicPermission;
if (hasPermission)
{
actions.Add(new ActionDtoViewModel
{
ActionName = descriptor.ActionName,
ControllerName = descriptor.ControllerName,
ActionDisplayName = descriptor.MethodInfo.GetCustomAttribute<DisplayAttribute>()?.Name,
AreaName = descriptor.MethodInfo.GetCustomAttribute<AreaAttribute>()?.RouteValue
});
}
}
return actions;
}
ViewModel:
public class ActionDtoViewModel
{
public string Key => $"{AreaName}:{ControllerName}:{ActionName}";
public string AreaName { get; set; }
public string ControllerName { get; set; }
public string ActionName { get; set; }
public string ActionDisplayName { get; set; }
}