diff --git a/CorsClient/CorsClient/wwwroot/Index.html b/CorsClient/CorsClient/wwwroot/Index.html index d9748c9..26737c1 100644 --- a/CorsClient/CorsClient/wwwroot/Index.html +++ b/CorsClient/CorsClient/wwwroot/Index.html @@ -47,10 +47,10 @@
diff --git a/CorsServer/CorsServer.WebApi31/ApiConst.cs b/CorsServer/CorsServer.WebApi31/ApiConst.cs
index a4b16ea..b6084af 100644
--- a/CorsServer/CorsServer.WebApi31/ApiConst.cs
+++ b/CorsServer/CorsServer.WebApi31/ApiConst.cs
@@ -5,12 +5,10 @@ using System.Threading.Tasks;
 
 namespace CorsServer.WebApi31
 {
-    public class ApiConst
-    {
-    }
 
-    public class CorsPolicyNameConst
+    public class ApplicationConst
     {
         public const string DefaultPolicyName = "AllowAll";
+        public const string CorsConfigOptionName = "CorsOption";
     }
 }
diff --git a/CorsServer/CorsServer.WebApi31/Controllers/CorsController.cs b/CorsServer/CorsServer.WebApi31/Controllers/CorsController.cs
index ed56c88..2d37585 100644
--- a/CorsServer/CorsServer.WebApi31/Controllers/CorsController.cs
+++ b/CorsServer/CorsServer.WebApi31/Controllers/CorsController.cs
@@ -38,7 +38,7 @@ namespace CorsServer.WebApi31.Controllers
         [HttpDelete]
         [HttpPatch]
         [HttpOptions]
-        [EnableCors(CorsPolicyNameConst.DefaultPolicyName)]
+        [EnableCors(ApplicationConst.DefaultPolicyName)]
         public IActionResult HasCors()
         {
             var data = new { Code = 0, Messge = "单独明确可以跨域" };
diff --git a/CorsServer/CorsServer.WebApi31/Properties/launchSettings.json b/CorsServer/CorsServer.WebApi31/Properties/launchSettings.json
index c5a4b6a..a7c94aa 100644
--- a/CorsServer/CorsServer.WebApi31/Properties/launchSettings.json
+++ b/CorsServer/CorsServer.WebApi31/Properties/launchSettings.json
@@ -4,7 +4,7 @@
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
-      "applicationUrl": "http://localhost:40118",
+      "applicationUrl": "http://localhost:7050",
       "sslPort": 0
     }
   },
@@ -21,7 +21,7 @@
       "commandName": "Project",
       "launchBrowser": true,
       "launchUrl": "api/Test/Ping",
-      "applicationUrl": "http://localhost:5000",
+      "applicationUrl": "http://localhost:7050",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
       }
diff --git a/CorsServer/CorsServer.WebApi31/Startup.cs b/CorsServer/CorsServer.WebApi31/Startup.cs
index acadfba..4f7796a 100644
--- a/CorsServer/CorsServer.WebApi31/Startup.cs
+++ b/CorsServer/CorsServer.WebApi31/Startup.cs
@@ -26,10 +26,11 @@ namespace CorsServer.WebApi31
         public void ConfigureServices(IServiceCollection services)
         {
             //Config
-            services.Configure(Configuration.GetSection("CORS"));
+            services.Configure(Configuration.GetSection(ApplicationConst.CorsConfigOptionName));
 
             #region  CORS
-            AddCors_Test(services);
+            AddCors_Config(services);
+            //AddCors_Test(services);
             //AddCors_2(services);
             //AddCors_3(services);
             //AddCors_4(services);
@@ -43,17 +44,49 @@ namespace CorsServer.WebApi31
             if (env.IsDevelopment())
             {
                 app.UseDeveloperExceptionPage();
+                //app.UseDatabaseErrorPage();
             }
+            else
+            {
+                //app.UseExceptionHandler("/Error");
+                //app.UseHsts();
+            }
+
+            // app.UseHttpsRedirection();
+
+            #region ѹͰھ̬ļ
+            // app.UseResponseCompression();
+            // app.UseResponseCaching();
+            #endregion
 
-            //·ȫַǰ http://www.custom.com/PathBase/
-            //app.UsePathBase("/api/");
+            // app.UseStaticFiles();
+
+            // app.UseCookiePolicy();
+
+            // ·ȫַǰ http://www.custom.com/PathBase/
+            // app.UsePathBase("/api/");
 
             app.UseRouting();
 
-            app.UseCors(CorsPolicyNameConst.DefaultPolicyName);
+            // app.UseRequestLocalization();
+
+            // UseRouting()  UseAuthentication()֮
+            // м˳ https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-6.0#middleware-order
+            app.UseCors(ApplicationConst.DefaultPolicyName);
+
+            //app.UseAuthentication();
 
             app.UseAuthorization();
 
+            // Cookieм֮ MVCм֮ǰûỰм
+            // app.UseSession();
+
+            // app.UseResponseCompression();
+
+            // app.UseResponseCaching();
+
+            //Զм
+
             app.UseEndpoints(endpoints =>
             {
                 endpoints.MapControllers();
@@ -68,7 +101,7 @@ namespace CorsServer.WebApi31
             services.AddCors(setup =>
             {
                 var corsOption = services.BuildServiceProvider().GetRequiredService>().Value;
-                setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+                setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                 {
                     build
 
@@ -120,7 +153,7 @@ namespace CorsServer.WebApi31
         {
             services.AddCors(setup =>
             {
-                setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+                setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                 {
                     build
 
@@ -171,7 +204,7 @@ namespace CorsServer.WebApi31
         {
             services.AddCors(setup =>
             {
-                setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+                setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                 {
                     build
 
@@ -209,7 +242,7 @@ namespace CorsServer.WebApi31
         {
             services.AddCors(setup =>
              {
-                 setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+                 setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                  {
                      build
 
@@ -243,7 +276,7 @@ namespace CorsServer.WebApi31
         {
             services.AddCors(setup =>
            {
-               setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+               setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                {
                    build
                    .AllowAnyOrigin()
@@ -261,7 +294,7 @@ namespace CorsServer.WebApi31
             services.AddCors(setup =>
              {
                  var corsOption = services.BuildServiceProvider().GetRequiredService>().Value;
-                 setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+                 setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                  {
                      build
                      .WithOrigins(corsOption.Origins.ToArray())
@@ -278,7 +311,7 @@ namespace CorsServer.WebApi31
         {
             services.AddCors(setup =>
            {
-               setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, build =>
+               setup.AddPolicy(ApplicationConst.DefaultPolicyName, build =>
                {
                    build.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("x-custom-error");
                });
@@ -291,7 +324,7 @@ namespace CorsServer.WebApi31
             services.AddCors(setup =>
               {
                   var corsOption = services.BuildServiceProvider().GetRequiredService>().Value;
-                  setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, builder =>
+                  setup.AddPolicy(ApplicationConst.DefaultPolicyName, builder =>
                   {
                       builder
                       ////.SetIsOriginAllowedToAllowWildcardSubdomains()
@@ -313,7 +346,7 @@ namespace CorsServer.WebApi31
             services.AddCors(setup =>
               {
                   var corsOption = services.BuildServiceProvider().GetRequiredService>().Value;
-                  setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, builder =>
+                  setup.AddPolicy(ApplicationConst.DefaultPolicyName, builder =>
                   {
                       if (corsOption.Origins == null)
                       {
@@ -337,6 +370,10 @@ namespace CorsServer.WebApi31
                       {
                           builder.AllowAnyMethod();
                       }
+                      else if (corsOption.Methods.Contains("*"))
+                      { 
+                          builder.AllowAnyMethod();
+                      }
                       else
                       {
                           builder.WithMethods(corsOption.Methods.ToArray());
@@ -346,6 +383,11 @@ namespace CorsServer.WebApi31
                       {
                           builder.AllowAnyHeader();
                       }
+
+                      else if (corsOption.Headers.Contains("*"))
+                      {
+                          builder.AllowAnyHeader();
+                      }
                       else
                       {
                           builder.WithMethods(corsOption.Headers.ToArray());
diff --git a/CorsServer/CorsServer.WebApi31/StartupConfig.cs b/CorsServer/CorsServer.WebApi31/StartupConfig.cs
index 805b106..a84d667 100644
--- a/CorsServer/CorsServer.WebApi31/StartupConfig.cs
+++ b/CorsServer/CorsServer.WebApi31/StartupConfig.cs
@@ -26,7 +26,7 @@ namespace CorsServer.WebApi31
         public void ConfigureServices(IServiceCollection services)
         {
             //Config
-            services.Configure(Configuration.GetSection("CORS"));
+            services.Configure(Configuration.GetSection(ApplicationConst.CorsConfigOptionName));
 
             //Corsļѡ
             AddCors_Config(services);
@@ -43,7 +43,7 @@ namespace CorsServer.WebApi31
 
             app.UseRouting();
 
-            app.UseCors(CorsPolicyNameConst.DefaultPolicyName);
+            app.UseCors(ApplicationConst.DefaultPolicyName);
 
             app.UseAuthorization();
 
@@ -53,14 +53,12 @@ namespace CorsServer.WebApi31
             });
         }
 
-        #region ע᲻ͬCors
-
         private IServiceCollection AddCors_Config(IServiceCollection services)
         {
             services.AddCors(setup =>
               {
                   var corsOption = services.BuildServiceProvider().GetRequiredService>().Value;
-                  setup.AddPolicy(CorsPolicyNameConst.DefaultPolicyName, builder =>
+                  setup.AddPolicy(ApplicationConst.DefaultPolicyName, builder =>
                   {
                       if (corsOption.Origins == null)
                       {
@@ -121,7 +119,5 @@ namespace CorsServer.WebApi31
 
             return services;
         }
-
-        #endregion
     }
 }
diff --git a/CorsServer/CorsServer.WebApi31/StartupDefaultPolicy.cs b/CorsServer/CorsServer.WebApi31/StartupDefaultPolicy.cs
index 5070330..bb520bc 100644
--- a/CorsServer/CorsServer.WebApi31/StartupDefaultPolicy.cs
+++ b/CorsServer/CorsServer.WebApi31/StartupDefaultPolicy.cs
@@ -25,11 +25,20 @@ namespace CorsServer.WebApi31
 
         public void ConfigureServices(IServiceCollection services)
         {
-            //config
-            services.Configure(Configuration.GetSection("CORS"));
-
-            //Cors
-            AddDefaultCors(services);
+            //ĬϲCors
+            services.AddCors(setupCors =>
+            {
+                //Ĭϲ
+                setupCors.AddDefaultPolicy(build =>
+                {
+                    build
+                    .AllowAnyOrigin()
+                    .AllowAnyMethod()
+                    .AllowAnyHeader()
+                    .SetPreflightMaxAge(TimeSpan.FromMinutes(10))
+                    ;
+                });
+            }); 
 
             services.AddControllers();
         }
@@ -41,9 +50,6 @@ namespace CorsServer.WebApi31
                 app.UseDeveloperExceptionPage();
             }
 
-            //·ȫַǰ http://www.custom.com/PathBase/
-            //app.UsePathBase("/api/");
-
             app.UseRouting();
 
             app.UseCors();
@@ -55,26 +61,5 @@ namespace CorsServer.WebApi31
                 endpoints.MapControllers();
             });
         }
-
-        /// 
-        /// ĬϲCors
-        /// 
-        private IServiceCollection AddDefaultCors(IServiceCollection services)
-        {
-            services.AddCors(setupCors =>
-            {
-                setupCors.AddDefaultPolicy(build =>
-                {
-                    build
-                    .AllowAnyOrigin()
-                    .AllowAnyMethod()
-                    .AllowAnyHeader()
-                    .SetPreflightMaxAge(TimeSpan.FromMinutes(10))
-                    ;
-                });
-            });
-
-            return services;
-        }
     }
 }
diff --git a/CorsServer/CorsServer.WebApi31/appsettings.json b/CorsServer/CorsServer.WebApi31/appsettings.json
index bc33d6e..52d08bb 100644
--- a/CorsServer/CorsServer.WebApi31/appsettings.json
+++ b/CorsServer/CorsServer.WebApi31/appsettings.json
@@ -1,6 +1,6 @@
 {
-  "urls": "http://*:5000",
-  "CORS": {
+  "urls": "http://*:7050",
+  "CorsOption": {
     "Origins": ["*"],
     "Methods": [ "*" ],
     "Headers": [ "*" ],