Какие базовые фильтры Вы знаете в MVC Framework?



ASP.NET MVC жүйесінде контроллер әрекеттер әдістерін анықтайды және бұл әрекеттер әдетте пайдаланушы интерфейсінің басқаруымен, мысалы, түймені немесе сілтемемен басу және т.б. сияқты бір-бірімен байланысады. Мысалы, біздің алдыңғы жағдайлардың бірінде UserController класы UserAdd, UserDelete және тағы басқалар.

Бірақ біз бірнеше рет белгілі бір операцияға дейін немесе одан кейін кейбір әрекеттер жасағымыз келеді. Бұл функцияны орындау үшін, ASP.NET MVC әрекетті контроллер әдістеріне дейін және одан кейінгі әрекеттерді қосу мүмкіндігін береді.

Сүзгілер түрлері

ASP.NET MVC келесі әрекеттер сүзгілерін қолдайды:

Әрекет сүзгілері - Әрекет сүзгілері контроллер әрекетінен бұрын және кейін іске қосылған логиканы іске асыру үшін пайдаланылады. Біз осы тараудағы «Әрекет сүзгілері» бөлімін қараңыз.

Авторизация сүзгілері. Авторландыру сүзгілері контроллер әрекеттеріне арналған аутентификацияны және авторизацияны іске асыру үшін пайдаланылады.

Нәтижелер сүзгілері. Нәтиже сүзгілері презентация нәтижесі алдында және кейін орындалатын логиканы қамтиды. Мысалы, шолғышта көріністі бейнелемес бұрын алдын ала қарау нәтижесін өзгертуіңіз қажет болуы мүмкін.

Шығару сүзгілері - қоспау сүзгілері іске қосылатын сүзгінің соңғы түрі. Контроллердің әрекеттеріне немесе контроллер әрекеттерінің нәтижелеріне байланысты қателерді өңдеу үшін ерекше сүзгіні пайдалануға болады. Қателерді тіркеу үшін ерекше сүзгілерді пайдалануға болады.

Әрекет сүзгілері қосымша деректерді өңдеу немесе қайтару мәндерін басқару немесе әрекетті болдырмау немесе көрініс құрылымын орындау уақытында өзгерту үшін ең жиі қолданылатын сүзгілердің бірі болып табылады.

Әрекет сүзгілері

Әрекет Сүзгілері - әрекеттің орындалу жолын өзгерту үшін контроллер бөлігіне немесе бүкіл контроллерге қолданылуы мүмкін қосымша атрибуттар. Бұл атрибуттар сыныптар, әдістер, сипаттар және өрістерге байланыстырылатын System.Attribute жүйесінен алынған арнайы .NET сыныптары болып табылады. ASP.NET MVC келесі әрекет сүзгілерін береді:

Шығу кэші - Бұл әрекет сүзгіші белгілі бір уақыт ішінде контроллер әрекетін шығарады.

Өңдеу қатесі - бұл әрекет сүзгісі контроллер әрекеті орындалған кезде пайда болатын қателерді өңдейді.

Рұқсат ету. Бұл әрекетті сүзгі белгілі бір пайдаланушыға немесе рөлге қатынасты шектеуге мүмкіндік береді. Енді осы сүзгілерді ActionFilterDemoController үлгі контроллеріне қолдану үшін мысал кодын көреміз. (ActionFilterDemoController мысал ретінде пайдаланылады, бұл сүзгілер кез келген контроллерге қолданылуы мүмкін.)

Шығу кэші

Мысал. 10 секунд ішінде кэштеу үшін қайтару мәнін анықтайды. public class ActionFilterDemoController : Controller {

[HttpGet]

OutputCache(Duration = 10)]

public string Index() {

return DateTime.Now.ToString("T"); 

}

}

Өңдеу қатесі

Мысал. Контроллерде қате орын алған кезде қолданба қатесі бетіне қайта бағыттау. [HandleError] public class ActionFilterDemoController : Controller {    public ActionResult Index() {       throw new NullReferenceException();    }    public ActionResult About() {       return View();    } }

Жоғарыдағы кодпен әрекеттегі кез-келген қате болса, Көріністер қалтасындағы қате атаумен көрінеді және пайдаланушының сол бетті көрсете алады.

 

Как осуществляется применение фильтров к контроллерам и методам действия?

ASP.NET MVC платформасында, контроллер сілтемелерді басу немесе пішін жіберу сияқты ықтимал пайдаланушы әрекеттерімен әдетте бір-бірімен сәйкес келетін әрекет әдістерін анықтайды. Мысалы, пайдаланушы сілтемені бассаңыз, сұрау көрсетілген контроллерге жіберіледі және тиісті әрекет әдісі шақырылады.

Кейде логика әрекет әдісі шақырылғанға дейін немесе ол орындалғаннан кейін орындалуы керек. Бұл үшін ASP.NET MVC сүзгілерді қамтамасыз етеді. Сүзгілер әрекетті орындау алдында және әрекетті орындаудан кейін контроллер әрекеттер әдістеріне мінез-құлық қосу үшін декларативті және бағдарламалық құралдарды қамтамасыз ететін реттелетін сыныптар.

ASP.NET MVC сүзгілерінің түрлері

ASP.NET MVC әрекеттер сүзгілерінің келесі түрлерін қолдайды.

- Авторизация сүзгілері. Бұл сүзгілер IAuthorizationFilter түрін іске асырады және қауіпсіздік әдісімен әрекет ету әдісін (мысалы, аутентификацияны орындау немесе сұрау сипаттарын тексеру) орындауды анықтайды. AuthorizeAttribute және RequireHttpsAttribute сыныптары аутентификация сүзгілерінің мысалдары болып табылады. Түпнұсқалық растама сүзгілері басқа сүзгілер орындалмай тұрып орындалады.

- Әрекет сүзгілері. Бұл сүзгілер IActionFilter түрін іске асырады және әрекет әдісін орындау үшін қабықша ретінде жұмыс істейді. IActionFilter интерфейсі екі әдісті жариялайды: OnActionExecuting және OnActionExecuted. OnActionExecuting әдісі әрекет әдісіне дейін орындалады. OnActionExecuted әдісі әрекет әдісінен кейін орындалады және қосымша өңдеуді жүзеге асыра алады, мысалы, әрекет әдісіне қосымша деректерді беру, қайтару мәнін тексеру немесе әрекет әдісінің орындалуын болдырмау.

Контроллер класы сүзгі интерфейстерінің әрқайсысын іске асырады. Контроллердің <сүзгісі> әдісін баса отырып, нақты контроллердің кез-келген сүзгіні іске асыруға болады. Мысалы, OnAuthorization әдісін елемеуге болады. Жүктеу мысалында қамтылған қарапайым контроллер әрбір сүзгіні орындаған кезде әр сүзгіні тексереді және диагностикалық ақпаратты жазады. Контроллердегі <Filter> әдістерін келесі әрекеттерді орындауға болады.

OnAuthorization

OnException

OnActionҚұжаттау

OnAction орындалды

OnResultExecuting

OnResultExecuted

ASP.NET MVC-те берілген сүзгілер

ASP.NET MVC келесі төлсипаттар ретінде енгізілген сүзгілерді қамтиды. Сүзгілер қолданылу әдісі, контроллер немесе қолданба деңгейінде қолданылуы мүмкін.

-AuthorizeAttribute. Түпнұсқалық растама арқылы кіруді және қажет болған жағдайда авторизацияны шектеу.

-HandleErrorAttribute. Әрекет әдісі арқылы жасалған ерекше жағдайды қалай өңдеу керектігін анықтайды.

-OutputCacheAttribute. Өнімді кэштеуді қамтамасыз етіңіз.

-RequireHttpsAttribute. HTTPS арқылы қорғалмаған HTTP сұрауларын күштеу.

Сүзгіні жасау

Сүзгіні келесі жолдармен жасауға болады.

Контроллердегі <Сүзгі> әдістерінің біреуін немесе бірнешеуін болдырмаңыз.

ActionFilterAttribute-дан мұраланған атрибутты сынып жасаңыз және төлсипатты контроллерге немесе әрекет әдісіне қолданыңыз.

Сүзгі жеткізушісінен сүзгіні тіркеңіз (сынып FilterProviders).

GlobalFilterCollection сыныбын пайдаланып, жаһандық сүзгіні тіркеңіз.

Сүзгі ActionFilterAttribute дерексіз сыныпын іске асыра алады. AuthorizeAttribute сияқты кейбір сүзгілер FilterAttribute класын тікелей іске асырады. Авторизация сүзгілері әрқашан әрекет әдісіне дейін шақырылады және сүзгілердің барлық басқа түрлері орындалады. Басқа сүзгілер (мысалы, OutputCacheAttribute) әрекет әдісінің орындалуына дейін немесе одан кейін әрекеттер сүзгісін іске қосуға мүмкіндік беретін дерексіз сынып ActionFilterAttribute қолданбасын жүзеге асырады.

Сүзгі төлсипатын әрекеттер әдістерімен немесе контроллерлермен декларативті пайдалануға болады. Егер атрибут контроллерде болса, әрекет сүзгісі осы контроллердің барлық әрекеттер әдістеріне қолданылады.


Дата добавления: 2018-02-15; просмотров: 542; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!