{"id":20306,"date":"2020-09-25T06:54:29","date_gmt":"2020-09-25T06:54:29","guid":{"rendered":"https:\/\/www.aceinfoway.com\/blog\/?p=20306"},"modified":"2022-04-04T12:50:00","modified_gmt":"2022-04-04T12:50:00","slug":"asp-net-core-middleware","status":"publish","type":"post","link":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware","title":{"rendered":"ASP.NET Core Middleware &#8211; A Layered System"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_37 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\r\n<div class=\"ez-toc-title-container\">\r\n<p class=\"ez-toc-title\">Table of Contents<\/p>\r\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\r\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\/#So_what_exactly_is_the_Middleware\" title=\"So, what exactly is the Middleware?\">So, what exactly is the Middleware?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\/#How_does_Middleware_Works\" title=\"How does Middleware Works?\">How does Middleware Works?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\/#How_to_set_up_a_Middleware_Pipeline_in_your_Website\" title=\"How to set up a Middleware Pipeline in your Website?\">How to set up a Middleware Pipeline in your Website?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\/#Conclusion\" title=\"Conclusion\">Conclusion<\/a><\/li><\/ul><\/nav><\/div>\r\n<div  class=\"fusion-fullwidth fullwidth-box nonhundred-percent-fullwidth\"  style='background-color: rgba(255,255,255,0);background-position: center center;background-repeat: no-repeat;padding-top:20px;padding-right:30px;padding-bottom:20px;padding-left:30px;'><div class=\"fusion-builder-row fusion-row \"><div  class=\"fusion-layout-column fusion_builder_column fusion_builder_column_1_1  fusion-one-full fusion-column-first fusion-column-last wireframe-post-single 1_1\"  style='margin-top:0px;margin-bottom:20px;'>\n\t\t\t<div class=\"fusion-column-wrapper\" style=\"background-position:left top;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;\"  data-bg-url=\"\">\n\t\t\t\t<p><strong>Want an absolute control over the request\/response action of your application?<\/strong><\/p>\n<p>Middleware- the catalyst behind the soaring popularity of ASP.NET Core, can help you with this, allowing you to control each request and response activity of your application and making the software architecture comprehensible and meaningful.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"So_what_exactly_is_the_Middleware\"><\/span>So, what exactly is the Middleware?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Middleware<\/strong>, also termed as a <a href=\"https:\/\/web.archive.org\/web\/20120629211518\/http:\/\/www.middleware.org\/whatis.html\" target=\"\u201d_blank\u201d\">software glue<\/a>, is computer <a href=\"https:\/\/en.wikipedia.org\/wiki\/Software\" target=\"\u201d_blank\u201d\">software<\/a> that allows the applications\/software to interact with the database, servers, remote systems, etc, depending on the type used. Middleware makes the communication within the application easier, controlling the HTTP requests and responses.<\/p>\n<p>Before its introduction, the request and response objects in the ASP.NET projects, used to be very big as well as extremely tightly coupled with the web server software i.e.\u00a0 <strong>Internet Information Services(IIS)<\/strong>, making the objects difficult to handle. To solve this <strong>ASP.NET Core<\/strong> <strong>Middleware<\/strong> came into the picture, which showed the way to remove the dependency of the web applications on the server.<\/p>\n<div class=\"cus_blockcontain\"><strong>To learn more on ASP.NET Core, check out:<\/strong><br \/>\n<strong><a style=\"color: #0051ae; text-decoration: underline;\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-dot-net-core-advantages\" target=\"_blank\" rel=\"noopener\">Top 5 Advantages of Using ASP.NET Core<\/a><\/strong><br \/>\n<strong><a style=\"color: #0051ae; text-decoration: underline;\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-authentication-for-spas\" target=\"_blank\" rel=\"noopener\">Authentication and authorization for SPAs through ASP.NET Core<\/a><\/strong><\/div>\n<h2><span class=\"ez-toc-section\" id=\"How_does_Middleware_Works\"><\/span>How does Middleware Works?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To use the middleware in the application, you need to build the request pipeline using the request delegates, which handles the HTTP request. You can configure the request delegates through the \u2018Run\u2019, \u2018Map\u2019, and \u2018Use\u2019 method on IApplicationBuilder.<\/p>\n<p>These delegates decide whether the request should be passed to the next component in the application pipeline or not. Along with this, it can also perform the required actions such as saving data, before and after the invocation of the next component in the application pipeline. Then the response comes back in the same fashion through the pipeline.<\/p>\n<ul>\n<li>\n<h3>Run method<\/h3>\n<p>The Run method is an extension method that handles the requests, accepting the RequestDelegate parameter. The Run() method should be placed at the end of the pipeline as the method terminates the chain, preventing any other middleware to execute.<\/p>\n<div class=\"code_contain\"><code>app.Run(async context =&gt;<br \/>\n{<br \/>\nawait context.Response.WriteAsync(\"Hello from \" + _environment);<br \/>\n});<\/code><\/div>\n<\/li>\n<li>\n<h3>Use method<\/h3>\n<p>The Use() method enables you to perform the action before and after the next middleware delegate. You can also call the required middleware delegate using the function next.Invoke(). It helps include the short-circuiting in the pipeline &#8211; a process in which the middleware, instead of passing a task to another middleware, executes it.<\/p>\n<div class=\"code_contain\"><code>app.Use(async (context, next) =&gt;<br \/>\n{<br \/>\nawait context.Response.WriteAsync(\"Hello from \" + _environment);<br \/>\n...<br \/>\nawait next.Invoke(); \/\/ invoking the next middleware<br \/>\n});<\/code><\/div>\n<\/li>\n<li>\n<h3>Map method<\/h3>\n<p>The Map() method checks the path requested by the user and matches it with the path present in the parameter, finding the match the method runs the middleware. It also creates multiple paths and hence the terminating ends for the pipeline.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-20313 aligncenter\" src=\"https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/How-does-Middleware-Works.jpg\" alt=\"How does Middleware Works\" width=\"836\" height=\"333\" \/><\/li>\n<\/ul>\n<p>You can use multiple Middleware in the ASP.NET Core based web application as per the requirement, some are inbuilt within the frameworks and some of them you need to add through NuGet.<\/p>\n<p>ASP. NET provides following built-in middleware components:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Middleware<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Authentication<\/td>\n<td>Provides support for authentication in website and application<\/td>\n<\/tr>\n<tr>\n<td>Session<\/td>\n<td>Provides support for user sessions management.<\/td>\n<\/tr>\n<tr>\n<td>Routing<\/td>\n<td>Provides support for requested routes.<\/td>\n<\/tr>\n<tr>\n<td>CORS<\/td>\n<td>Provides Cross-Origin Resource Sharing configuration.<\/td>\n<\/tr>\n<tr>\n<td>Static Files<\/td>\n<td>Provides support for fetching and retrieving static files<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"How_to_set_up_a_Middleware_Pipeline_in_your_Website\"><\/span>How to set up a Middleware Pipeline in your Website?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let\u2019s say you want to set up the middleware pipeline in a website template. To do so, you need to use the Configure () method in the Startup class, which adds the following components:<\/p>\n<ol>\n<li>Error handling<\/li>\n<li>Static file server<\/li>\n<li>Cookie Policy<\/li>\n<li>MVC(with the area defined)<\/li>\n<li>Session<\/li>\n<\/ol>\n<div class=\"code_contain\"><code>public void Configure(IApplicationBuilder app, IHostingEnvironment env)<br \/>\n{<br \/>\n\/\/ Error Handling Middleware defined in Startup.cs<br \/>\nif (env.IsDevelopment())<br \/>\n{<br \/>\napp.UseDeveloperExceptionPage();<br \/>\napp.UseBrowserLink();<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\napp.UseExceptionHandler(\"\/Home\/Error\");<br \/>\n\/\/app.UseHsts();<br \/>\n}<br \/>\napp.UseHttpsRedirection();<br \/>\napp.UseStaticFiles();<br \/>\napp.UseCookiePolicy();<br \/>\n\/\/For: Session<br \/>\n\/\/The order of middleware is important. In the preceding example, an InvalidOperationException exception occurs when UseSession is invoked after UseMvc.<br \/>\napp.UseSession();<br \/>\napp.UseMvc(routes =&gt;<br \/>\n{<br \/>\n\/\/ Add area<br \/>\nroutes.MapRoute(<br \/>\nname: \"Area\",<br \/>\ntemplate: \"{addname?}\/{area:exists}\/{controller=Login}\/{action=Index}\/{id?}\");<br \/>\n});<br \/>\n}<\/code><\/div>\n<p>The order of the Middleware is very important, requiring you to strictly follow it in your website Here in this example, the first middleware that we have used is for error handling in both development and non-development environments.<\/p>\n<p>In the case of the development environment, the <strong>UseDeveloperExceptionPage <\/strong>component is used, which adds the middleware to the pipeline. This middleware helps the developer to trace the errors and exceptions in the development phase.<\/p>\n<p>For the non-developer environment, we are using the <strong>UseExceptionHandler<\/strong> middleware. This middleware collects the URL, places a request for it in the request pipeline as well as catches the exception that occurs in the calls.<\/p>\n<p><strong>UseHttpsRedirection<\/strong> Middleware directly redirects the HTTP request to the HTTPS.<\/p>\n<p><strong>UseStaticFiles<\/strong> Middleware serves the static files to be served by adding them to the pipeline. You can store the static file in the webroot and access it through the path. This module does not provide authorization checks to the files, however, if you wish to do the authorization check, you can store the files in any directory outside the webroot, reachable to the middleware.<\/p>\n<p><strong>UseCookiePolicy<\/strong> adds the <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/api\/microsoft.aspnetcore.cookiepolicy.cookiepolicymiddleware?view=aspnetcore-3.1\" target=\"\u201d_blank\u201d\">CookiePolicyMiddleware<\/a> handler to the specified request pipeline, which assures that the application abides the General Data Protection Regulation (GDPR) regulations.<\/p>\n<p><strong>UseSession<\/strong> is a method that provides support for user sessions management, enabling you to access and manage the session when called. If you don&#8217;t call this method, you won\u2019t be able to access the sessions.<\/p>\n<p><strong>UseMvc<\/strong> is always used at the end when all the authentication and session handling is done. The UseMvc method adds the MVC to the request pipeline as well as enables attribute routing.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Component reusability has been one of the major goals of the software developers, bringing into picture numerous technologies and concepts like <a href=\"https:\/\/www.aceinfoway.com\/blog\/react-component-library-and-storybook\" target=\"\u201d_blank\u201d\"><strong>Storybook<\/strong><\/a>, distributed systems with centralized control, instead of placing a separate copy of the resource at each module.<\/p>\n<p>Middleware also works on a similar idea, liberating the developers to execute some essential piece of code at every numerous stage, affecting the speed and performance of the application\/website. Rather, it allows you to include the middlewares explicitly in the Startup file, which only needs to be executed once, giving you access to the other middlewares. You can use various middlewares as per the requirement of your website\/application or even create a customized one of yours.<\/p>\n<p>Middleware is one of the major reasons behind the success of ASP.NET core, providing numerous advantages to the developers, such as &#8211; real-time information flow, linear development process, information integrity, more control over the HTTP request\/response, and improved software architecture.<\/p>\n<p>ASP.NET Core Middleware is a simple yet powerful tool. To leverage it on your website and application, <a href=\"https:\/\/www.aceinfoway.com\/DotNet\" target=\"\u201d_blank\u201d\">Hire a .NET Developer<\/a>, who will not only create an outstanding website but also help you to achieve your unique project requirements.<\/p>\n<div class=\"blog_bottom_banner\"><a href=\"https:\/\/www.aceinfoway.com\/Contact-Us\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-20308 size-full\" src=\"https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware_cta.jpg\" alt=\"ASP.NET Core Middleware_cta\" width=\"836\" height=\"273\" \/><\/a><\/div>\n<div class=\"fusion-clearfix\"><\/div>\n\n\t\t\t<\/div>\n\t\t<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":769419,"featured_media":20307,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[43],"tags":[460,458,459],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.10 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>What is Middleware in ASP.NET Core And How Does It Work?<\/title>\r\n<meta name=\"description\" content=\"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"What is Middleware in ASP.NET Core And How Does It Work?\" \/>\r\n<meta property=\"og:description\" content=\"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\" \/>\r\n<meta property=\"og:site_name\" content=\"Ace Infoway\" \/>\r\n<meta property=\"article:published_time\" content=\"2020-09-25T06:54:29+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2022-04-04T12:50:00+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\r\n\t<meta property=\"og:image:height\" content=\"524\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Vipul Patel\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vipul Patel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\",\"url\":\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\",\"name\":\"What is Middleware in ASP.NET Core And How Does It Work?\",\"isPartOf\":{\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/#website\"},\"datePublished\":\"2020-09-25T06:54:29+00:00\",\"dateModified\":\"2022-04-04T12:50:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/d8ac0c9df1e05d018b93b759e766c551\"},\"description\":\"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.aceinfoway.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ASP.NET Core Middleware &#8211; A Layered System\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/#website\",\"url\":\"https:\/\/www.aceinfoway.com\/blog\/\",\"name\":\"Ace Infoway\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.aceinfoway.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/d8ac0c9df1e05d018b93b759e766c551\",\"name\":\"Vipul Patel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f2d72931f141a85b2e53b3a0c67b5dea?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f2d72931f141a85b2e53b3a0c67b5dea?s=96&d=mm&r=g\",\"caption\":\"Vipul Patel\"},\"description\":\"Vipul is a passionate techie and loves to get involved in high pace projects which involves creating business optimized applications, business processes, and strategies to maximize business growth with a clear focus on expertise in SaaS domain.\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is Middleware in ASP.NET Core And How Does It Work?","description":"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware","og_locale":"en_US","og_type":"article","og_title":"What is Middleware in ASP.NET Core And How Does It Work?","og_description":"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.","og_url":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware","og_site_name":"Ace Infoway","article_published_time":"2020-09-25T06:54:29+00:00","article_modified_time":"2022-04-04T12:50:00+00:00","og_image":[{"width":1024,"height":524,"url":"https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg","type":"image\/jpeg"}],"author":"Vipul Patel","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vipul Patel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware","url":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware","name":"What is Middleware in ASP.NET Core And How Does It Work?","isPartOf":{"@id":"https:\/\/www.aceinfoway.com\/blog\/#website"},"datePublished":"2020-09-25T06:54:29+00:00","dateModified":"2022-04-04T12:50:00+00:00","author":{"@id":"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/d8ac0c9df1e05d018b93b759e766c551"},"description":"Middleware is one of the most important layer in ASP.NET Core, taking software development to next level. In this article, know more about .NET Middleware and How does it work.","breadcrumb":{"@id":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.aceinfoway.com\/blog\/asp-net-core-middleware#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.aceinfoway.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ASP.NET Core Middleware &#8211; A Layered System"}]},{"@type":"WebSite","@id":"https:\/\/www.aceinfoway.com\/blog\/#website","url":"https:\/\/www.aceinfoway.com\/blog\/","name":"Ace Infoway","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.aceinfoway.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/d8ac0c9df1e05d018b93b759e766c551","name":"Vipul Patel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aceinfoway.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f2d72931f141a85b2e53b3a0c67b5dea?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f2d72931f141a85b2e53b3a0c67b5dea?s=96&d=mm&r=g","caption":"Vipul Patel"},"description":"Vipul is a passionate techie and loves to get involved in high pace projects which involves creating business optimized applications, business processes, and strategies to maximize business growth with a clear focus on expertise in SaaS domain."}]}},"rttpg_featured_image_url":{"full":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false],"landscape":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false],"portraits":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false],"thumbnail":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-150x150.jpg",150,150,true],"medium":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-300x154.jpg",300,154,true],"large":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-1024x524.jpg",1024,524,true],"1536x1536":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false],"2048x2048":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false],"blog-large":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-669x272.jpg",669,272,true],"blog-medium":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-320x202.jpg",320,202,true],"portfolio-full":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-940x400.jpg",940,400,true],"portfolio-one":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-540x272.jpg",540,272,true],"portfolio-two":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-460x295.jpg",460,295,true],"portfolio-three":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-300x214.jpg",300,214,true],"portfolio-five":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-177x142.jpg",177,142,true],"recent-posts":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-700x441.jpg",700,441,true],"recent-works-thumbnail":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-66x66.jpg",66,66,true],"200":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-200x102.jpg",200,102,true],"400":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-400x205.jpg",400,205,true],"600":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-600x307.jpg",600,307,true],"800":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware-800x409.jpg",800,409,true],"1200":["https:\/\/www.aceinfoway.com\/blog\/wp-content\/uploads\/2020\/09\/ASP.NET-Core-Middleware.jpg",1024,524,false]},"rttpg_author":{"display_name":"Vipul Patel","author_link":"https:\/\/www.aceinfoway.com\/blog\/author\/vipul-umretiya"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/www.aceinfoway.com\/blog\/advanced-technologies\" rel=\"category tag\">Advanced Technologies<\/a>","rttpg_excerpt":null,"_links":{"self":[{"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/posts\/20306"}],"collection":[{"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/users\/769419"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/comments?post=20306"}],"version-history":[{"count":14,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/posts\/20306\/revisions"}],"predecessor-version":[{"id":21359,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/posts\/20306\/revisions\/21359"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/media\/20307"}],"wp:attachment":[{"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/media?parent=20306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/categories?post=20306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aceinfoway.com\/blog\/wp-json\/wp\/v2\/tags?post=20306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}