{ "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", // App基本配置 "AppSettings": { // AppSettings:配置根节点 // InjectMiniProfiler:是否注入 MiniProfiler,bool 类型,默认 true,关闭 Swagger 左上角监听 // InjectSpecificationDocument:是否启用 Swagger 文档,bool 类型,默认 true,生产环境可关闭 // EnabledReferenceAssemblyScan:是否启用通过 dll 方式添加的引用程序集扫描,bool 类型,默认 false // ExternalAssemblies:配置外部程序集完整路径,支持动态加载,string[] 类型,默认 [] // PrintDbConnectionInfo:是否打印数据库连接信息到 MiniProfiler 中,bool 类型,默认 true // SupportPackageNamePrefixs:配置支持的包前缀名,string[] 类型,默认 [] // OutputOriginalSqlExecuteLog:是否输出原始 Sql 执行日志(ADO.NET),默认 true // VirtualPath:配置虚拟目录,必须以 / 开头 "InjectSpecificationDocument": false, "InjectMiniProfiler": false }, // Swagger文档配置 ------------------------------------------------------------------------------ "SpecificationDocumentSettings": { // DocumentTitle:文档标题,string,默认 Specification Api Document // DefaultGroupName:默认分组名,string,默认 Default // EnableAuthorized:是否启用权限控制,bool,默认 true // FormatAsV2:采用 Swagger 2.0 版本,bool,默认 false 已弃用 // RoutePrefix:规范化文档地址,string,默认 api,如果希望在首页,改为空字符串即可。 // DocExpansionState:文档显示方式,DocExpansion,默认 List,取值: // List:列表式(展开子类),默认值 // Full:完全展开 // None:列表式(不展开子类) // XmlComments:程序集注释描述文件名(可带 .xml,string,默认 Furion.Application, Furion.Web.Entry, Furion.Web.Core // GroupOpenApiInfos:分组信息配置,SpecificationOpenApiInfo[],默认 { 'Group': 'Default'} // SecurityDefinitions:安全策略定义配置,SpecificationOpenApiSecurityScheme[],默认 [] // Servers:配置 Server 下拉列表,OpenApiServer[] 类型,默认 [],如:{Servers:[ { Url:"地址", Description:"描述"} ]} // HideServers:是否隐藏 Server 下拉列表,bool 类型,默认 true // RouteTemplate:配置文档 swagger.json 路由模板,默认模板:swagger/{documentName}/swagger.json, {documentName} 代表分组名,必须保留原样 // PackagesGroups:配置模块化内置分组名称,string[] 类型,默认 [] // EnableEnumSchemaFilter:启用枚举 Schema 筛选器,bool 类型,默认 true // EnableTagsOrderDocumentFilter:启用标签排序筛选器,bool 类型,默认 true // ServerDir:配置 IIS 添加 Application 部署名,string 类型,默认空,仅在 Furion v3.2.0+` 有效 // LoginInfo:配置 Swagger 是否需要登录才能访问,SpecificationLoginInfo 类型,默认 null,仅在 Furion v3.3.3+` 有效 // Enabled:是否启用登录授权,默认 false // CheckUrl:检查登录状态的 Url 地址,该地址必须是 POST 请求,已授权返回 200,否则返回 401 // SubmitUrl:提交登录的 Url 地址,该地址必须是 POST 请求且只有一个 SpecificationAuth 类型参数,成功登录返回 200,否则返回 401,支持相对地址,以 / 开头 // EnableAllGroups:启用 Swagger 总分组功能,自动将所有分组的接口合并到 All Groups 中,bool 类型,默认 false,仅在 Furion v3.3.4+` 有效 // 另外 SpecificationOpenApiInfo 内置配置如下: // // Group:分组唯一标识,string 类型,必填 // Order:分组排序,int 类型,数字越大排前面,默认 0 // Visible:配置分组是否可见,bool 类型,默认 true // Title:配置分组标题,string 类型 // Description:配置分组描述,string 类型 // Version:配置分组版本,默认 1.0 // TermsOfService:配置相关链接地址,Uri 类型 // Contact:配置联系方式,OpenApiContact 类型 // License:配置协议,OpenApiLicense 类型 "EnableEnumSchemaFilter": false, "EnableAuthorized": false, "RoutePrefix": "swagger", "XmlComments": [ "FreeSql.xml", "NetAdmin.AdmServer.Application.xml", "NetAdmin.AdmServer.Cache.xml", "NetAdmin.AdmServer.Host.xml", "NetAdmin.Application.xml", "NetAdmin.Cache.xml", "NetAdmin.Domain.xml", "NetAdmin.Host.xml", "NetAdmin.Infrastructure.xml", "NetAdmin.ScheduledService.xml", "NetAdmin.SysComponent.Application.xml", "NetAdmin.SysComponent.Cache.xml", "NetAdmin.SysComponent.Host.xml", ] }, // 验证码配置 -------------------------------------------------------------------------------------------------------- "Captcha": { "ImageRelativePath": ".data/captcha", "SecretKey": "1Z?f(2)%v?:X5NYRl+]PSi.rDf7Ip#lB" }, // 跨域配置 ---------------------------------------------------------------------------------------------------------- "CorsAccessorSettings": { // CorsAccessorSettings // PolicyName:跨域策略名,string 类型,必填,默认 App.Cors.Policy // WithOrigins:允许跨域的域名列表,string[] 类型,默认 * // WithHeaders:请求表头,没有配置则允许所有表头,string[] 类型 // WithExposedHeaders:设置客户端可获取的响应标头,string[] 类型,默认 ["access-token", "x-access-token"] // WithMethods:设置跨域允许请求谓词,没有配置则允许所有,string[] 类型 // AllowCredentials:是否允许跨域请求中的凭据,bool 类型,默认值 true // SetPreflightMaxAge:设置预检过期时间,int 类型,默认值 24小时 // FixedClientToken:是否默认配置 WithExposedHeaders,bool 类型,默认 true // SignalRSupport:是否启用 SignalR 跨域支持,bool 类型,默认 false "WithExposedHeaders": [ "access-token", "x-access-token", "content-disposition" ] }, // 数据库配置 -------------------------------------------------------------------------------------------------------- "Database": { "DbType": "Sqlite", "ConnStr": "data source=NetAdmin.db", "SeedDataRelativePath": "SeedData" }, // 动态webapi配置 ---------------------------------------------------------------------------------------------------- "DynamicApiControllerSettings": { // 5.1.10 DynamicApiControllerSettings 配置 // Furion 还提供动态 WebAPI 接口一些全局配置选项,如: // // DefaultRoutePrefix:默认路由前缀,string,默认 api // DefaultHttpMethod:默认请求谓词,string,默认:POST // DefaultModule:默认模块名称(区域),可用作接口版本,string,默认:v1 // LowercaseRoute:小写路由格式,bool,默认:true // AsLowerCamelCase:启用小驼峰命名(首字母小写),默认 false // KeepVerb:是否保留动作谓词,bool,默认:false // KeepName:是否保留默认名称,bool,默认:fasle // CamelCaseSeparator:骆驼(驼峰)/帕斯卡命名分隔符,string,默认:- // VersionSeparator:版本分隔符,string,默认:@ // ModelToQuery:GET/HEAD 请求将 类类型参数转查询参数,bool,默认 false // SupportedMvcController:是否支持 Mvc Controller 动态配置,bool,默认 false // UrlParameterization:路由参数采用 [FromQuery] 化,默认 false([FromRoute] 方式) // DefaultArea:配置默认区域,默认 null // ForceWithRoutePrefix:配置是否强制添加 DefaultRoutePrefix,当控制器自定义了 [Route] 有效,仅限 v3.4.1+版本有效 // AbandonControllerAffixes:默认去除控制器名称前后缀列表名,string[],默认: // AppServices // AppService // ApiController // Controller // Services // Service // AbandonActionAffixes:默认去除动作方法名称前后缀列表名,string[],默认: // Async // VerbToHttpMethods:复写默认方法名转 [HttpMethod] 规则,string[][] 二维数组类型,内置匹配规则为: // ["post"] = "POST", // ["add"] = "POST", // ["create"] = "POST", // ["insert"] = "POST", // ["submit"] = "POST", // ["get"] = "GET", // ["find"] = "GET", // ["fetch"] = "GET", // ["query"] = "GET", // ["getlist"] = "GET", // ["getall"] = "GET", // ["put"] = "PUT", // ["update"] = "PUT", // ["delete"] = "DELETE", // ["remove"] = "DELETE", // ["clear"] = "DELETE", // ["patch"] = "PATCH" // // 复写示例 // "DynamicApiControllerSettings": { // "VerbToHttpMethods": [ // [ "getall", "HEAD" ], // => getall 会被复写为 `[HttpHead]` // [ "other", "PUT" ] // => 新增一条新规则,比如,一 `[other]` 开头会转换为 `[HttpPut]` 请求 // ] // } // "DefaultRoutePrefix": "rest", "VerbToHttpMethods": [ [ "post", "POST" ], [ "add", "POST" ], [ "create", "POST" ], [ "insert", "POST" ], [ "submit", "POST" ], [ "get", "POST" ], [ "find", "POST" ], [ "fetch", "POST" ], [ "query", "POST" ], [ "getlist", "POST" ], [ "getall", "POST" ], [ "put", "POST" ], [ "update", "POST" ], [ "delete", "POST" ], [ "remove", "POST" ], [ "clear", "POST" ], [ "patch", "POST" ] ], "CamelCaseSeparator": ".", "UrlParameterization": true, "KeepVerb": true, "AbandonControllerAffixes": [ "Controller" ], }, // 友好异常配置 ------------------------------------------------------------------------------------------------------- "FriendlyExceptionSettings": { // 7.15 FriendlyExceptionSettings 配置 // HideErrorCode:隐藏错误码,bool 类型,默认 false // DefaultErrorCode:默认错误码,string 类型 // DefaultErrorMessage:默认错误消息,string 类型 // ThrowBah:是否将 Oops.Oh 默认抛出为业务异常,bool 类型,默认 false,设置 true 之后 Oops.Oh 默认进入 OnValidateFailed 处理,而不是 OnException // LogError:是否输出异常日志,bool 类型,默认 true "LogError": false }, // JWT鉴权配置 ------------------------------------------------------------------------------------------------------- "JWTSettings": { "ValidateIssuerSigningKey": true, // 是否验证密钥,bool 类型,默认true "IssuerSigningKey": "bO0BCAGxpxYnm6AE4XpgO25T27NayFzjGgfDqBuzUzD6ROpFiZUi3KjVg93bdGek", // 密钥,string 类型,必须是复杂密钥,长度大于16 "ValidateIssuer": true, // 是否验证签发方,bool 类型,默认true "ValidIssuer": "签发方", // 签发方,string 类型 "ValidateAudience": true, // 是否验证签收方,bool 类型,默认true "ValidAudience": "签收方", // 签收方,string 类型 "ValidateLifetime": true, // 是否验证过期时间,bool 类型,默认true,建议true "ExpiredTime": 20, // 过期时间,long 类型,单位分钟,默认20分钟 "ClockSkew": 5, // 过期时间容错值,long 类型,单位秒,默认 5秒 "Algorithm": "HS256" // 加密算法,string 类型,默认 HS256 }, // 日志配置 ---------------------------------------------------------------------------------------------------------- "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning", "System.Logging.EventBusService": "Error" }, "Monitor": { "GlobalEnabled": false, // 是否启用全局拦截,默认 `false` // "IncludeOfMethods": [], // 是否指定拦截特定方法,当 GlobalEnabled: false 有效 // "ExcludeOfMethods": [], // 是否指定排除特定方法,当 GlobalEnabled: true 有效 // "BahLogLevel": "Information", // 配置 Oops.Oh 和 Oops.Bah 业务日志输出级别,默认 Information // "WithReturnValue": true, // 配置是否包含返回值,默认 `true`,Furion 4.3.9+ 有效 "ReturnValueThreshold": 1000 // 配置返回值字符串阈值,默认 0,全量输出,Furion 4.3.9+ 有效 // "JsonBehavior": "None", // 配置 LoggingMonitor Json 输出行为,默认 None,Furion 4.5.2+ 有效 // "MethodsSettings": [ // // 配置被监视方法更多信息,Furion 4.3.9+ 有效 // { // "FullName": "Furion.Application.TestLoggerServices.MethodName", // 方法完全限定名 // "WithReturnValue": true, // 配置是否包含返回值,默认 `true`,Furion 4.3.9+ 有效 // "ReturnValueThreshold": 0 // 配置返回值字符串阈值,默认 0,全量输出,Furion 4.3.9+ 有效 // } // ] } }, // Redis配置 -------------------------------------------------------------------------------------------------------- "Redis": { "Instances": [ // 数据缓存 { "Name": "DataCache", "ConnStr": "localhost:6379,abortConnect=false", "DataBase": 0, } ] }, // UnifyResultSettings 规范化配置 ------------------------------------------------------------------------------------ "UnifyResultSettings": { // Return200StatusCodes:配置返回 200 状态码的请求,int[] 类型,只支持 400+(404除外) 状态码篡改 // AdaptStatusCodes:配置篡改状态码规则,int[][] 类型,只支持 400+(404除外) 状态码篡改 // SupportMvcController:是否支持 MVC 控制台规范化处理,bool 类型,默认 false "Return200StatusCodes": [ 999 ], }, // 文件上传配置 ------------------------------------------------------------------------------------------------------- "Upload": { "ContentTypes": [ "image/jpg", "image/png", "image/jpeg", "image/gif" ], "MaxSize": 1073741824, "Minio": { "ServerAddress": "vm-ubt-1:9000", "AccessKey": "nVMM0gSqwyIjM8iZ", "SecretKey": "F8OZngGrNsZSYn4MP9swwMSf5rfm61EC", "BucketName": "net-admin", "AccessUrl": "http://vm-ubt-1:9000", "Secure": false, } }, }