Public class HomeController : Controller



{

//................................ }

[Authorize] атрибутты бұл жағдайда авторизация фильтрі ретінде қолданылатын болады. Егер біз бұл фильтрді қолданбасақ, авторизацияны тексеретін логиканы қолмен жазуымызға тура келер еді.

Мысылада көргендей, фильтрлерді қолдану үшін атрибутты контроллер класының алдына қою керек – бұл жағдайда фильтр контроллердің барлық әдістеріне қолданылатын болады. Яғни, фильтрді жеке әдіс деңгейінде де қолдануға болады:

Public class HomeController : Controller

{ [Authorize]

Public ActionResult Index()

{ ViewBag.Message = "Привет мир!";

return View() }}

Как используется встроенный класс Опишите, как используется фильтр действия в приложении, созданного по технологии ASP.NET MVC?

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

Әрекет фильтрі IActionFilter интерфейсін жүзеге асыруы тиіс:

Public interface IActionFilter

{ void OnActionExecuting(ActionExecutingContext filterContext);

void OnActionExecuted(ActionExecutedContext filterContext);

}

Немесе,IResultFilter интерфейсін жүзеге асыратын ActionFilterAttribute абстрактілі класынан жаңа фильтрді мұралауымыз қажет:

PublicabstractclassActionFilterAttribute : FilterAttribute, IActionFilter, IresultFilter

Мысал ретінде мына әрекет фильтрін қарастырайық:
public class MyActionAttribute : FilterAttribute, IActionFilter

{

Public void OnActionExecuted(ActionExecutedContext filterContext)

{

filterContext.HttpContext.Response.Write("Действие выполнено");

}

Public void OnActionExecuting(ActionExecutingContext filterContext)

{

if (filterContext.HttpContext.Request.Browser.Browser=="Opera")

{

filterContext.Result = new HttpNotFoundResult();

}}}

Және колдану:

[MyAction]

Public ActionResult Index()

{

return View();

}

В каких случаях возникает необходимость создания специального механизма визуализации в приложении, созданного по технологии Опишите, как используется фильтр действия в приложении, созданного по технологии ASP.NETMVC?

Razor - бұл визуализация механизмінің атауы, Microsoft-қа

MVC 3 версиясы кезінде енгізілген, содан кейн MVC 4 версиясында өзгертіліп жасалынған (бірақ өзгерістер көп болмады). Визуализация механизмі ASP.NET-тегі контентке обработка жасайды және инструкциясын іздейді, әдетте браузерге жіберілетін динамикалық контентты енгізеді.

Microsoft-та екі визуализация механизмі бар:

1) Дескрипторлармен жұмыс жасайтын <% және %> ASPX механизмі- ол ASP.NET-ті әзірлеуде негіз болды.

Razor-дың мүмкіндіктері мен синтаксисін көрсету үшін, Visual Studio-да жаңа проект құрамыз, ASP.NET MVC 4 Web Application

және оған Empty(Пустой) проект ашамыз.

Product классы арқылы қарапайым модельді көрсетеміз:

namespace Razor.Models {

public class Product {

public int ProductID { get; set; }

public string Name { get; set; }

public string Description { get; set; }

public decimal Price { get; set; }

public string Category { set; get; }

   }

}

Razor-дің қарапайым қойылуы:

@model Razor.Models.Product

 @{ Layout = null;

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

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

[Authorize]

Public class HomeController : Controller

{

//................................

}

MVC 5 те бірнеше фильтрдің типі бар:

IAuthenticationFilter- аутентификация фильтрі

IAuthorizationFilter- авторизация фильтрі

IActionFilter- әрекеттер фильтрі


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

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






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