Sobes.tech
Junior — Middle

Wyjaśnij koncepcję używania filtrów w ASP.NET i ich rolę w obsłudze żądań

sobes.tech AI

Odpowiedź od AI

W ASP.NET filtry to komponenty, które umożliwiają wykonywanie dodatkowej logiki przed lub po obsłudze żądania HTTP przez kontroler. Pomagają one w oddzieleniu zadań przekrojowych, takich jak autoryzacja, logowanie, obsługa błędów i buforowanie.

Rola filtrów w obsłudze żądań:

  • Umożliwiają ponowne użycie kodu bez zmiany logiki biznesowej.
  • Zarządzają cyklem życia żądania, na przykład sprawdzając uprawnienia przed wykonaniem akcji.
  • Mogą modyfikować dane wejściowe lub wynik odpowiedzi.

Przykład użycia filtra autoryzacji:

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

// Zastosowanie filtra do kontrolera lub akcji
[CustomAuthorizationFilter]
public IActionResult SecureAction()
{
    return View();
}