помощник по тегам .net 5 авторизуется с помощью политик действий (или ролей)

#.net-5 #asp.net-core-tag-helpers #authorize

Вопрос:

Я нашел много примеров реализации помощника по тегам, который скрывает элемент, если пользователь не авторизован, но каждый раз мне нужно указывать роли или политики в качестве атрибута. Я хотел бы реализовать помощник по тегу авторизации для тега «a», который считывает роли или политики из действия (или контроллера). Авторизуйте атрибут действия, указанного в атрибуте asp-действие. Пример:

 // this link should be rendered only if user has "Manager" role
<a asp-authorize asp-action="Index" asp-controller="Manager">Hello manager</a>

[Authorize(Roles = "Manager")]
public async Task<IActionResult> Index() {
 

это мой код taghelper:

         public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) {

        if (string.IsNullOrWhiteSpace(Action)) {
            throw new ArgumentException("Action can't be null");
        }
        if (string.IsNullOrWhiteSpace(Controller)) {
            throw new ArgumentException("Controller can't be null");
        }
        var policy = await AuthorizationPolicy.CombineAsync(_policyProvider, new[] { this });

        var authenticateResult = await _policyEvaluator.AuthenticateAsync(policy, _httpContextAccessor.HttpContext);

        var authorizeResult = await _policyEvaluator.AuthorizeAsync(policy, authenticateResult, _httpContextAccessor.HttpContext, null);

        if (!authorizeResult.Succeeded) {
            output.SuppressOutput();
        }
    }
 

Как я могу это сделать?