Выполнить код, когда действие вызывается в конкретном контроллере asp.net. - PullRequest
0 голосов
/ 04 июня 2018

Скажем, например, у меня есть контроллер администратора, и я хочу выполнить дополнительные пользовательские проверки, когда пользователь, который вызывает любое из действий контроллера администратора.

Как выполнить некоторый код в классе контроллера, когдакакое-либо действие вызывается только для контроллера?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Поскольку вы не запрашиваете конкретный пример программирования, я просто отсылаю вас к базовой документации .net Сервисных фильтров .

Я использовал их раньше для создания чего-то вродетрекер активности для зарегистрированных пользователей, скажем, это был администратор, и я хотел посмотреть, как давно пользователь выполнил действие, этот фильтр будет проверять последнее действие пользователей в сеансе, прежде чем разрешить доступ к методу.

Вот общий пример:

public class MyFilter : ActionFilterAttribute
{
    public MyFilter()
    {
    }

    //After Method execution
    public override void OnActionExecuted(ActionExecutedContext context)
    {
        //Do stuff
    }

    //Before Method execution
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        //Do stuff
    }
}

При запуске: services.AddScoped<MyFilter>();

и выше контроллера / действия: [ServiceFilter(typeof(MyFilter))]

0 голосов
/ 04 июня 2018

Если вы хотите проверить пользователя при доступе к любому методу с контроллером, украсьте свой контроллер атрибутом [Authorize].

Если вы хотите ограничить только определенные действия, вы можете оставить свой контроллер как есть и простоУкрасьте нужные методы с помощью атрибута [Authorize].

Если вы хотите оставить только неавторизованные методы внутри контроллера, украсьте контроллер с помощью атрибута [Authorize], и методы, к которым вы хотите обращаться анонимными пользователями, должны будутбыть оформленным с использованием атрибута [AllowAnonymous].

Поможет ли это?Если у вас есть конкретные требования, пожалуйста, включите их в вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...