Sobes.tech
Junior — Middle

Vysvětlete koncept používání filtrů v ASP.NET a jejich roli při zpracování požadavků

sobes.tech AI

Odpověď od AI

V ASP.NET jsou filtry komponenty, které umožňují provádět dodatečnou logiku před nebo po zpracování HTTP požadavku kontrolerem. Pomáhají oddělit průřezové úkoly, jako je autorizace, protokolování, zpracování chyb a ukládání do mezipaměti.

Role filtrů při zpracování požadavků:

  • Umožňují znovu použitelnost kódu bez změny obchodní logiky.
  • Řídí životní cyklus požadavku, například kontrolou oprávnění před provedením akce.
  • Mohou měnit vstupní data nebo výsledek odpovědi.

Příklad použití autorizačního filtru:

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

// Použití filtru na kontroler nebo akci
[CustomAuthorizationFilter]
public IActionResult SecureAction()
{
    return View();
}