From 9f3433acece40a3186df6a5fabe068f911989f97 Mon Sep 17 00:00:00 2001 From: sornaks Date: Tue, 1 Apr 2014 10:46:23 -0700 Subject: [PATCH] WebFX 156 - Introducing RedirectPermanent. Merging RedirectPermanent to Redirect. --- src/Microsoft.AspNet.Abstractions/HttpResponse.cs | 7 ++++++- .../DefaultHttpResponse.cs | 12 ++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNet.Abstractions/HttpResponse.cs b/src/Microsoft.AspNet.Abstractions/HttpResponse.cs index bed5e5c8f2..28814c747b 100644 --- a/src/Microsoft.AspNet.Abstractions/HttpResponse.cs +++ b/src/Microsoft.AspNet.Abstractions/HttpResponse.cs @@ -23,7 +23,12 @@ namespace Microsoft.AspNet.Abstractions public abstract void OnSendingHeaders(Action callback, object state); - public abstract void Redirect(string location); + public virtual void Redirect(string location) + { + Redirect(location, permanent: false); + } + + public abstract void Redirect(string location, bool permanent); public abstract Task WriteAsync(string data); diff --git a/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs b/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs index 278f16b591..2a24076c19 100644 --- a/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs +++ b/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs @@ -107,9 +107,17 @@ namespace Microsoft.AspNet.PipelineCore HttpResponseInformation.OnSendingHeaders(callback, state); } - public override void Redirect(string location) + public override void Redirect(string location, bool permanent) { - HttpResponseInformation.StatusCode = 302; + if (permanent) + { + HttpResponseInformation.StatusCode = 301; + } + else + { + HttpResponseInformation.StatusCode = 302; + } + Headers.Set(Constants.Headers.Location, location); }