Sobes.tech
Junior — Middle

Paaiškinkite filtrų naudojimo koncepciją ASP.NET ir jų vaidmenį užklausų apdorojime

sobes.tech AI

Atsakymas iš AI

ASP.NET filtruose yra komponentai, leidžiantys atlikti papildomą logiką prieš arba po HTTP užklausos apdorojimo kontroleryje. Jie padeda atskirti kryžmines užduotis, tokias kaip autorizacija, registravimas, klaidų tvarkymas ir talpyklos naudojimas.

Filtrų vaidmuo užklausų apdorojime:

  • Leidžia pakartotinai naudoti kodą be verslo logikos keitimo.
  • Valdo užklausos gyvavimo ciklą, pvz., patikrinant prieigos teises prieš vykdant veiksmą.
  • Gali keisti įeinančius duomenis arba atsakymo rezultatą.

Autorizacijos filtro naudojimo pavyzdys:

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

// Filtrą taikyti kontroleriui arba veiksmui
[CustomAuthorizationFilter]
public IActionResult SecureAction()
{
    return View();
}