diff --git a/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs b/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs index 6863d61e0e..1723ee6fd5 100644 --- a/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs +++ b/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs @@ -284,4 +284,4 @@ namespace Microsoft.AspNetCore.Http return null; } } -} \ No newline at end of file +} diff --git a/src/Microsoft.AspNetCore.Http.Extensions/RequestHeaders.cs b/src/Microsoft.AspNetCore.Http.Extensions/RequestHeaders.cs index ddd125985e..12246922d4 100644 --- a/src/Microsoft.AspNetCore.Http.Extensions/RequestHeaders.cs +++ b/src/Microsoft.AspNetCore.Http.Extensions/RequestHeaders.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.Net.Http.Headers; namespace Microsoft.AspNetCore.Http.Headers @@ -261,6 +262,23 @@ namespace Microsoft.AspNetCore.Http.Headers } } + public Uri Referer + { + get + { + Uri uri; + if (Uri.TryCreate(Headers[HeaderNames.Referer], UriKind.RelativeOrAbsolute, out uri)) + { + return uri; + } + return null; + } + set + { + Headers.Set(HeaderNames.Referer, value == null ? null : UriHelper.Encode(value)); + } + } + public T Get(string name) { return Headers.Get(name); @@ -311,4 +329,4 @@ namespace Microsoft.AspNetCore.Http.Headers Headers.AppendList(name, values); } } -} \ No newline at end of file +}