Как обнаружить действия контроллера и бритвенные страницы в ASP.NET Core - PullRequest
0 голосов
/ 08 октября 2019

Я занимаюсь разработкой моего администратора в 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; }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...