Hva er filteromfanget for og hvorfor de rare navnene?

 C Programming >> C C# Program >  >> C#
Hva er filteromfanget for og hvorfor de rare navnene?

Filter objekter, objektene som faktisk har en Scope egenskap, er konstruert basert på bruk – når du legger til et filter i de globale applikasjonsfiltrene, vises en Filter objektet er konstruert med en Scope av Global . På samme måte, når filterattributter samles inn fra kontrolleren og handlingen, Filter objekter er konstruert ved å bruke omfanget av Controller og Action , henholdsvis.

Jeg er ikke helt sikker på hvordan en Filter med en Scope av First eller Last faktisk blir opprettet.

Disse reglene er spesifisert for å si hvordan uavgjort vil bli brukt hvis du har et filter deklarert på for eksempel globalt nivå og på handlingsnivå med samme Order verdi - som er mer et problem enn filtre som er deklarert på samme nivå der du forventes å manuelt sørge for at hvert filter bruker en unik Order (hvis du bryr deg om å bestille).


Vel, jeg kan egentlig ikke forstå hva du finner som en bisarrhet her.

Autorisasjons-, handlings-, respons- og unntaksfiltre er 4 grensesnitt du kan implementere for å kjøre filterlogikken, IAuthorizationFilter , IActionFilter , IResultFilter og IExceptionFilter grensesnitt.

Etter det kommer forretningsreglene ut for lysene. For eksempel må du sjekke tilgangsrettighetene for noen brukerhandlinger. Du har ikke bare implementert autorisasjonsfilteret, men opprettet en logikk for å sjekke regler som:

  • Hvis brukeren ikke fullførte registreringen, må du minne ham på dette. Denne regelen bør kjøres på First , uansett hva brukeren gjør på nettstedet ditt.
  • Hvis brukeren ikke har blitt godkjent, kan han ikke se innholdet på nettstedet, og bør få en valideringsmelding. Så det er en Global scoped regel, og den bør kjøres før andre kontroller for brukerrettigheter.
  • Hvis brukeren ikke har tilgang for en avdeling, kan han ikke se noe innhold på nettstedet angående den avdelingen, men ikke alt - så vi lar Controller velge hva som skal vises for brukeren.
  • Hvis brukeren ikke er administrator, kan han ikke redigere eller slette noe innhold. Så dette er en konkret Action som blir filtrert.
  • Vi kan starte en logger etter at oppgaven er behandlet, så vi må vente til arbeidet er ferdig, og kjøre filter på Last .

Jeg ser her en veldig enkel modell for filterbestillingen , og jeg kan gi en prøve for hvert par eller filter type/filter scope .

Oppdatering:

noen eksempelkode for et filters bestilling: