From f2676babd3b7780573c40800dd916c7ad9195285 Mon Sep 17 00:00:00 2001 From: Mikael Mengistu Date: Wed, 31 Jan 2018 10:41:28 -0800 Subject: [PATCH] Add support for REQUEST_METHOD server variable (#294) --- .../Internal/IISUrlRewrite/ServerVariables.cs | 2 ++ .../IISUrlRewrite/ServerVariableTests.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs b/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs index 6bfdc59156..35e6ce1237 100644 --- a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs +++ b/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/ServerVariables.cs @@ -60,6 +60,8 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite return new RemotePortSegment(); case "REQUEST_FILENAME": return new RequestFileNameSegment(); + case "REQUEST_METHOD": + return new RequestMethodSegment(); case "REQUEST_URI": return new UrlSegment(uriMatchPart); default: diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs b/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs index b9acf1442c..b56a8c7854 100644 --- a/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs +++ b/test/Microsoft.AspNetCore.Rewrite.Tests/IISUrlRewrite/ServerVariableTests.cs @@ -27,6 +27,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite [InlineData("REQUEST_FILENAME", "/foo", UriMatchPart.Path)] [InlineData("REQUEST_URI", "/foo", UriMatchPart.Path)] [InlineData("REQUEST_URI", "http://example.com/foo?bar=1", UriMatchPart.Full)] + [InlineData("REQUEST_METHOD", "GET", UriMatchPart.Full)] public void CheckServerVariableParsingAndApplication(string variable, string expected, UriMatchPart uriMatchPart) { // Arrange and Act @@ -40,6 +41,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite private RewriteContext CreateTestHttpContext() { var context = new DefaultHttpContext(); + context.Request.Method = HttpMethods.Get; context.Request.Scheme = "http"; context.Request.Host = new HostString("example.com"); context.Request.Path = PathString.FromUriComponent("/foo");