使用标准的appsettings.json
配置文件,对于框架本身,提供了一些配置项,方便用户通过配置来控制程序的行为。
配置内容:
"Components": { "Cache": "Memory", "Database": "PostgreSQL", "UseCORS": true, "AuthType": "Jwt", "MQType": "None", "UseSMS": false, "UseSmtp": false, "UseAWSS3": false, "UseOpenAPI": true }
其中支持的值见下面枚举,使用相对应的字符串即可。
public enum AuthType { Jwt, Cookie, OAuth } public enum DatabaseType { SqlServer, PostgreSql, } public enum CacheType { Memory, Redis, Hybrid } public enum MQType { None, RabbitMQ, Kafka }
"Authentication": { "Jwt": { "ValidAudiences": "MyProjectName.AllFreedomPeople.Default", "ValidIssuer": "MyProjectName.HumanFreedom.Default", "Sign": "MyProjectName.FightForFreedomForever.Justice", "ExpiredSecond": 7200 }, "Microsoft": { "ClientId": null, "ClientSecret": null, "CallbackUrl": "/your/callback/" }, "Google": { "ClientId": null, "ClientSecret": null, "CallbackUrl": "/your/callback" } },
目前使用Jwt作为认证方式,如果想要使用第三方登录,可以配置Microsoft
或Google
的相关信息即可,具体的服务注入在ServiceDefaults/WebExtensions.cs
的AddThirdAuthentication
方法。
// 登录安全策略 "LoginSecurityPolicy": { // 密码严格等级 0-2 "PasswordLevel": 0, // 验证码 "IsNeedVerifyCode": false, // 密码过期天数 "PasswordExpired": 365, "LoginRetry": 5, // 会话数量限制 0-2 "SessionLevel": 0, // 是否开启策略 "IsEnable": false }
"Smtp": { // smtp服务地址 "Host": "", "Port": 25, // 发件人名称 "DisplayName": "", // 发件人地址 "From": "", // 验证用户名 "Username": "", // 验证密码 "Password": "", "EnableSsl": true }
"Cache": { // 最大内容字节 "MaxPayloadBytes": 1048576, // 键长度 "MaxKeyLength": 1024, // 过期 minutes "Expiration": 20, "LocalCacheExpiration": 10 }
OpenTelemetry会自动读取相关配置项。
"Otel": { "Exporter": { "Otlp": { "Endpoint": "https://your-otel-endpoint", "Protocol": "grpc", "Headers": "" } }, "Service": { "Name": "MyProjectName" } },
"SMS": { "AccessKeyId": "", "AccessKeySecret": "", "Sign": "" }
"AWSS3": { "Endpoint": "", "AccessKeyId": "", "AccessKeySecret": "", "BucketName": "", "Region": "" }
Tip
完整内容,可查看appsettings.json
中配置。也可在Framework.Common
程序集中查看Options
中的各配置项定义。
所有配置将会使用Options
注入到IServiceCollection
中,然后通过IOptions<T>
来获取配置项。
在ServiceDefaults
程序集中的FrameworkExtensions
中定义了AddFrameworkServices
扩展方法,该方法功能包括:
Options
服务