/// <summary>使用魔方,放在UseEndpoints之前,自动探测是否UseRouting</summary> /// <param name="app"></param> /// <param name="env"></param> /// <returns></returns> public static IApplicationBuilder UseCube(this IApplicationBuilder app, IWebHostEnvironment env) { XTrace.WriteLine("{0} Start 初始化魔方 {0}", new String('=', 32)); var set = Setting.Current; // 使用Cube前添加自己的管道 if (env != null) { // 使用自己的异常处理页,后续必须再次UseRouting if (!env.IsDevelopment()) { app.UseExceptionHandler("/CubeHome/Error"); } } if (!set.CorsOrigins.IsNullOrEmpty()) { app.UseCors("cube_cors"); } // 配置静态Http上下文访问器 app.UseStaticHttpContext(); // 注册中间件 app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); if (TracerMiddleware.Tracer != null) { app.UseMiddleware <TracerMiddleware>(); } app.UseMiddleware <RunTimeMiddleware>(); if (env != null) { app.UseCubeDefaultUI(env); } // 设置默认路由。如果外部已经执行 UseRouting,则直接注册 app.UseRouter(endpoints => { XTrace.WriteLine("注册魔方区域路由"); endpoints.MapControllerRoute( "CubeAreas", "{area}/{controller=Index}/{action=Index}/{id?}"); }); // 使用管理提供者 app.UseManagerProvider(); // 自动检查并添加菜单 AreaBase.RegisterArea <Admin.AdminArea>(); XTrace.WriteLine("{0} End 初始化魔方 {0}", new String('=', 32)); return(app); }
/// <summary>使用魔方</summary> /// <param name="app"></param> /// <returns></returns> public static IApplicationBuilder UseCube(this IApplicationBuilder app) { // 配置静态Http上下文访问器 app.UseStaticHttpContext(); var set = Setting.Current; // 压缩配置 if (set.EnableCompress) { app.UseResponseCompression(); } // 注册中间件 app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); //app.UseMiddleware<ErrorMiddleware>(); app.UseMiddleware <RunTimeMiddleware>(); if (set.WebOnline || set.WebBehavior || set.WebStatistics) { app.UseMiddleware <UserBehaviorMiddleware>(); } if (set.SslMode > SslModes.Disable) { app.UseHttpsRedirection(); } app.UseAuthentication(); app.UseRouting(); // 设置默认路由 app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( "CubeAreas", "{area=Admin}/{controller=Index}/{action=Index}/{id?}"); endpoints.MapControllerRoute( "Default", "{controller=Index}/{action=Index}/{id?}" ); endpoints.MapRazorPages(); }) .Build(); // 使用管理提供者 app.UseManagerProvider(); // 自动检查并添加菜单 AreaBase.RegisterArea <Admin.AdminArea>(); return(app); }
/// <summary>使用魔方</summary> /// <param name="app"></param> /// <param name="env"></param> /// <returns></returns> public static IApplicationBuilder UseCube(this IApplicationBuilder app, IWebHostEnvironment env = null) { // 配置静态Http上下文访问器 app.UseStaticHttpContext(); var set = Setting.Current; // 压缩配置 if (set.EnableCompress) { app.UseResponseCompression(); } // 注册中间件 app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); //app.UseMiddleware<ErrorMiddleware>(); app.UseMiddleware <RunTimeMiddleware>(); if (set.WebOnline || set.WebBehavior || set.WebStatistics) { app.UseMiddleware <UserBehaviorMiddleware>(); } if (set.SslMode > SslModes.Disable) { app.UseHttpsRedirection(); } app.UseAuthentication(); app.UseRouting(); // 设置默认路由 app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( "CubeAreas", "{area}/{controller=Index}/{action=Index}/{id?}"); endpoints.MapControllerRoute( "Default", "{controller=CubeHome}/{action=Index}/{id?}" ); endpoints.MapRazorPages(); }) .Build(); // 使用管理提供者 app.UseManagerProvider(); // 自动检查并添加菜单 AreaBase.RegisterArea <Admin.AdminArea>(); // 使用Cube前添加自己的管道 if (env != null) { if (!env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/CubeHome/Error"); } } return(app); }
/// <summary>使用魔方</summary> /// <param name="app"></param> /// <returns></returns> public static IApplicationBuilder UseCube(this IApplicationBuilder app) { //var loggerFactory = app.ApplicationServices.GetService(typeof(ILoggerFactory)) as ILoggerFactory; //loggerFactory.CreateLogger(""); // 配置静态Http上下文访问器 app.UseStaticHttpContext(); var set = Setting.Current; // 添加自定义中间件 // 注册错误处理模块中间件 app.UseErrorModule(); // 压缩配置 if (set.EnableCompress) { app.UseResponseCompression(); } // 注册请求执行时间中间件 app.UseDbRunTimeModule(); if (set.SslMode > SslModes.Disable) { app.UseHttpsRedirection(); } app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); app.UseAuthentication(); app.UseMvc(routes => { //var builder = new ODataConventionModelBuilder(); //builder.EntitySet<UserX>("UserXs"); //// OData路由放在最前面 //routes.MapODataServiceRoute("ODataRoute","OData", builder.GetEdmModel()); // 区域路由注册 routes.MapRoute( name: "CubeAreas", template: "{area=Admin}/{controller=Index}/{action=Index}/{id?}" ); // 为魔方注册默认首页,启动魔方站点时能自动跳入后台,同时为Home预留默认过度视图页面 routes.MapRoute( name: "Cube", template: "{controller=CubeHome}/{action=Index}/{id?}" ); }); // 使用管理提供者 app.UseManagerProvider(); // 自动检查并添加菜单 //XTrace.WriteLine("初始化权限管理体系"); //var user = ManageProvider.User; //ManageProvider.Provider.GetService<IUser>(); //ScanControllerExtensions.ScanController(); AreaBase.RegisterArea <Admin.AdminArea>(); return(app); }