diff --git a/src/Microsoft.AspNetCore.Cors/Infrastructure/CorsPolicyBuilder.cs b/src/Microsoft.AspNetCore.Cors/Infrastructure/CorsPolicyBuilder.cs
index 88e16fa0fa..3953296168 100644
--- a/src/Microsoft.AspNetCore.Cors/Infrastructure/CorsPolicyBuilder.cs
+++ b/src/Microsoft.AspNetCore.Cors/Infrastructure/CorsPolicyBuilder.cs
@@ -38,9 +38,9 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
/// The current policy builder.
public CorsPolicyBuilder WithOrigins(params string[] origins)
{
- foreach (var req in origins)
+ foreach (var origin in origins)
{
- _policy.Origins.Add(req);
+ _policy.Origins.Add(origin.ToLowerInvariant());
}
return this;
diff --git a/test/Microsoft.AspNetCore.Cors.Test/CorsPolicyBuilderTests.cs b/test/Microsoft.AspNetCore.Cors.Test/CorsPolicyBuilderTests.cs
index 8a223ad225..c9b3afca84 100644
--- a/test/Microsoft.AspNetCore.Cors.Test/CorsPolicyBuilderTests.cs
+++ b/test/Microsoft.AspNetCore.Cors.Test/CorsPolicyBuilderTests.cs
@@ -128,6 +128,17 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
Assert.Equal(new List() { "http://example.com", "http://example2.com" }, corsPolicy.Origins);
}
+ [Fact]
+ public void WithOrigins_NormalizesOrigins()
+ {
+ // Arrange
+ var builder = new CorsPolicyBuilder("http://www.EXAMPLE.com", "HTTPS://example2.com");
+
+ // Assert
+ var corsPolicy = builder.Build();
+ Assert.Equal(new List() { "http://www.example.com", "https://example2.com" }, corsPolicy.Origins);
+ }
+
[Fact]
public void AllowAnyOrigin_AllowsAny()
{