Sobes.tech
Junior — Middle

Обяснете концепцията за използване на филтри в ASP.NET и тяхната роля в обработката на заявки.

sobes.tech AI

Отговор от AI

В ASP.NET филтрите са компоненти, които позволяват изпълнението на допълнителна логика преди или след обработката на HTTP заявка от контролера. Те помагат за разделяне на кръстосаните задачи като авторизация, логване, обработка на грешки и кеширане.

Ролята на филтрите при обработката на заявки:

  • Позволяват повторно използване на код без промяна на бизнес логиката.
  • Управляват жизнения цикъл на заявката, например проверка на правата за достъп преди изпълнение на действие.
  • Могат да променят входните данни или резултата от отговора.

Пример за използване на филтър за авторизация:

public class CustomAuthorizationFilter : Attribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationFilterContext context)
    {
        if (!context.HttpContext.User.Identity.IsAuthenticated)
        {
            context.Result = new UnauthorizedResult();
        }
    }
}

// Приложение на филтъра към контролер или действие
[CustomAuthorizationFilter]
public IActionResult SecureAction()
{
    return View();
}