diff --git a/src/Microsoft.AspNetCore.Mvc.Cors/CorsAuthorizationFilter.cs b/src/Microsoft.AspNetCore.Mvc.Cors/CorsAuthorizationFilter.cs
index 793e9945d6..4e2cc209c1 100644
--- a/src/Microsoft.AspNetCore.Mvc.Cors/CorsAuthorizationFilter.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Cors/CorsAuthorizationFilter.cs
@@ -68,6 +68,13 @@ namespace Microsoft.AspNetCore.Mvc.Cors
if (request.Headers.ContainsKey(CorsConstants.Origin))
{
var policy = await _corsPolicyProvider.GetPolicyAsync(httpContext, PolicyName);
+
+ if (policy == null)
+ {
+ throw new InvalidOperationException(
+ Resources.FormatCorsAuthorizationFilter_MissingCorsPolicy(PolicyName));
+ }
+
var result = _corsService.EvaluatePolicy(context.HttpContext, policy);
_corsService.ApplyResult(result, context.HttpContext.Response);
diff --git a/src/Microsoft.AspNetCore.Mvc.Cors/Properties/Resources.Designer.cs b/src/Microsoft.AspNetCore.Mvc.Cors/Properties/Resources.Designer.cs
new file mode 100644
index 0000000000..b36a27e978
--- /dev/null
+++ b/src/Microsoft.AspNetCore.Mvc.Cors/Properties/Resources.Designer.cs
@@ -0,0 +1,46 @@
+//
+namespace Microsoft.AspNetCore.Mvc.Cors
+{
+ using System.Globalization;
+ using System.Reflection;
+ using System.Resources;
+
+ internal static class Resources
+ {
+ private static readonly ResourceManager _resourceManager
+ = new ResourceManager("Microsoft.AspNetCore.Mvc.Cors.Resources", typeof(Resources).GetTypeInfo().Assembly);
+
+ ///
+ /// A CORS policy named '{0}' could not be found.
+ ///
+ internal static string CorsAuthorizationFilter_MissingCorsPolicy
+ {
+ get { return GetString("CorsAuthorizationFilter_MissingCorsPolicy"); }
+ }
+
+ ///
+ /// A CORS policy named '{0}' could not be found.
+ ///
+ internal static string FormatCorsAuthorizationFilter_MissingCorsPolicy(object p0)
+ {
+ return string.Format(CultureInfo.CurrentCulture, GetString("CorsAuthorizationFilter_MissingCorsPolicy"), p0);
+ }
+
+ private static string GetString(string name, params string[] formatterNames)
+ {
+ var value = _resourceManager.GetString(name);
+
+ System.Diagnostics.Debug.Assert(value != null);
+
+ if (formatterNames != null)
+ {
+ for (var i = 0; i < formatterNames.Length; i++)
+ {
+ value = value.Replace("{" + formatterNames[i] + "}", "{" + i + "}");
+ }
+ }
+
+ return value;
+ }
+ }
+}
diff --git a/src/Microsoft.AspNetCore.Mvc.Cors/Resources.resx b/src/Microsoft.AspNetCore.Mvc.Cors/Resources.resx
new file mode 100644
index 0000000000..6c4897ab7f
--- /dev/null
+++ b/src/Microsoft.AspNetCore.Mvc.Cors/Resources.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ A CORS policy named '{0}' could not be found.
+
+