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");