Esempio n. 1
0
        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();
            });
        }
Esempio n. 2
0
        /// <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);
        }