From 28b56587b1fcf634e5aac06123d0a5df77864c02 Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Tue, 5 Feb 2019 09:22:40 -0800 Subject: [PATCH] Handle PermanentRedirects in PrerenderTagHelpers (#7179) Handle PermanentRedirects in PrerenderTagHelpers --- .../src/Prerendering/PrerenderTagHelper.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Middleware/SpaServices/src/Prerendering/PrerenderTagHelper.cs b/src/Middleware/SpaServices/src/Prerendering/PrerenderTagHelper.cs index ffa982e0dc..4e35228579 100644 --- a/src/Middleware/SpaServices/src/Prerendering/PrerenderTagHelper.cs +++ b/src/Middleware/SpaServices/src/Prerendering/PrerenderTagHelper.cs @@ -31,11 +31,11 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering /// The . public PrerenderTagHelper(IServiceProvider serviceProvider) { - var hostEnv = (IHostingEnvironment) serviceProvider.GetService(typeof(IHostingEnvironment)); - _nodeServices = (INodeServices) serviceProvider.GetService(typeof(INodeServices)) ?? _fallbackNodeServices; + var hostEnv = (IHostingEnvironment)serviceProvider.GetService(typeof(IHostingEnvironment)); + _nodeServices = (INodeServices)serviceProvider.GetService(typeof(INodeServices)) ?? _fallbackNodeServices; _applicationBasePath = hostEnv.ContentRootPath; - - var applicationLifetime = (IApplicationLifetime) serviceProvider.GetService(typeof(IApplicationLifetime)); + + var applicationLifetime = (IApplicationLifetime)serviceProvider.GetService(typeof(IApplicationLifetime)); _applicationStoppingToken = applicationLifetime.ApplicationStopping; // Consider removing the following. Having it means you can get away with not putting app.AddNodeServices() @@ -102,7 +102,8 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering if (!string.IsNullOrEmpty(result.RedirectUrl)) { // It's a redirection - ViewContext.HttpContext.Response.Redirect(result.RedirectUrl); + var permanentRedirect = result.StatusCode.GetValueOrDefault() == 301; + ViewContext.HttpContext.Response.Redirect(result.RedirectUrl, permanentRedirect); return; } @@ -123,4 +124,4 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering } } } -} \ No newline at end of file +}