public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // 全局异常处理 app.UseExceptionHandler(config => { config.Run(async context => { var error = context.Features.Get <Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature>(); if (error != null) { var ex = error.Error; string errormsg = ex.Message; string errorStackTrace = ex.StackTrace != null ? ex.StackTrace : string.Empty; string errpath = context.Request.Path; var result = new ServiceResult <string>() { Result = string.Empty }; result.IsFailed(errormsg); string jsonerror = System.Text.Json.JsonSerializer.Serialize(result); // 设置类型和状态码 context.Response.StatusCode = StatusCodes.Status200OK; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(jsonerror); } }); }); CorsConfigData _CorsConfigData = this.Configuration.GetSection("CorsInfo").Get <CorsConfigData>(); //定义名称 string PolicyName = _CorsConfigData.name; app.UseCors(PolicyName); app.UseRouting(); // 开启验证中间件 app.UseAuthentication();//启用验证 app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
/// <summary> /// 跨域的相关服务注册 /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <returns></returns> public static IServiceCollection AddCorsService(this IServiceCollection services, IConfiguration configuration) { CorsConfigData _CorsConfigData = configuration.GetSection("CorsInfo").Get <CorsConfigData>(); //定义名称 string PolicyName = _CorsConfigData.name; string[] urls = _CorsConfigData.urls.ToArray(); //添加cors 服务 配置跨域处理 services.AddCors(options => options.AddPolicy(PolicyName, builder => { builder.WithOrigins(urls) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); })); return(services); }