Browse Source

优化跨域配置判断

zhontai 4 years ago
parent
commit
3c589a44b5
1 changed files with 30 additions and 23 deletions
  1. 30 23
      Admin.Core/Startup.cs

+ 30 - 23
Admin.Core/Startup.cs

@@ -47,6 +47,7 @@ namespace Admin.Core
         private readonly IHostEnvironment _env;
         private readonly IHostEnvironment _env;
         private readonly ConfigHelper _configHelper;
         private readonly ConfigHelper _configHelper;
         private readonly AppConfig _appConfig;
         private readonly AppConfig _appConfig;
+        private const string DefaultCorsPolicyName = "Allow";
 
 
         public Startup(IConfiguration configuration, IWebHostEnvironment env)
         public Startup(IConfiguration configuration, IWebHostEnvironment env)
         {
         {
@@ -94,30 +95,33 @@ namespace Admin.Core
             #endregion
             #endregion
 
 
             #region Cors 跨域
             #region Cors 跨域
-            services.AddCors(options =>
+            if (_appConfig.CorUrls?.Length > 0)
             {
             {
-                options.AddPolicy("Limit", policy =>
+                services.AddCors(options =>
                 {
                 {
-                    policy
-                    .WithOrigins(_appConfig.CorUrls)
-                    .AllowAnyHeader()
-                    .AllowAnyMethod()
-                    .AllowCredentials();
-                });
+                    options.AddPolicy(DefaultCorsPolicyName, policy =>
+                    {
+                        policy
+                        .WithOrigins(_appConfig.CorUrls)
+                        .AllowAnyHeader()
+                        .AllowAnyMethod()
+                        .AllowCredentials();
+                    });
 
 
-                /*
-                //浏览器会发起2次请求,使用OPTIONS发起预检请求,第二次才是api异步请求
-                options.AddPolicy("All", policy =>
-                {
-                    policy
-                    .AllowAnyOrigin()
-                    .SetPreflightMaxAge(new TimeSpan(0, 10, 0))
-                    .AllowAnyHeader()
-                    .AllowAnyMethod()
-                    .AllowCredentials();
+                    /*
+                    //浏览器会发起2次请求,使用OPTIONS发起预检请求,第二次才是api异步请求
+                    options.AddPolicy("All", policy =>
+                    {
+                        policy
+                        .AllowAnyOrigin()
+                        .SetPreflightMaxAge(new TimeSpan(0, 10, 0))
+                        .AllowAnyHeader()
+                        .AllowAnyMethod()
+                        .AllowCredentials();
+                    });
+                    */
                 });
                 });
-                */
-            });
+            }
             #endregion
             #endregion
 
 
             #region 身份认证授权
             #region 身份认证授权
@@ -385,6 +389,12 @@ namespace Admin.Core
                 app.UseIpRateLimiting();
                 app.UseIpRateLimiting();
             }
             }
 
 
+            //跨域
+            if (_appConfig.CorUrls?.Length > 0)
+            {
+                app.UseCors(DefaultCorsPolicyName);
+            }
+
             //异常
             //异常
             app.UseExceptionHandler("/Error");
             app.UseExceptionHandler("/Error");
 
 
@@ -394,9 +404,6 @@ namespace Admin.Core
             //路由
             //路由
             app.UseRouting();
             app.UseRouting();
 
 
-            //跨域
-            app.UseCors("Limit");
-
             //认证
             //认证
             app.UseAuthentication();
             app.UseAuthentication();