1 changed files with 0 additions and 142 deletions
@ -1,142 +0,0 @@ |
|||
# 应用程序配置说明 |
|||
|
|||
## 配置文件结构 |
|||
应用程序使用以下配置文件: |
|||
- `appsettings.json` - 基础配置文件 |
|||
- `appsettings.Development.json` - 开发环境配置 |
|||
- `appsettings.Production.json` - 生产环境配置 |
|||
|
|||
## 主要配置项说明 |
|||
|
|||
### 数据库配置 |
|||
```json |
|||
{ |
|||
"DatabaseOptions": { |
|||
"DefaultConnection": "Host=localhost;Port=5432;Database=cellularmanagement;Username=postgres;Password=your-password", |
|||
"CommandTimeout": 30, |
|||
"EnableDetailedErrors": true, |
|||
"EnableSensitiveDataLogging": true |
|||
} |
|||
} |
|||
``` |
|||
|
|||
### JWT配置 |
|||
```json |
|||
{ |
|||
"JwtOptions": { |
|||
"SecretKey": "your-512-bit-secret-key", |
|||
"Issuer": "CellularManagement", |
|||
"Audience": "CellularManagement.WebAPI", |
|||
"ExpiryMinutes": 15, |
|||
"RefreshTokenExpiryDays": 7, |
|||
"ClockSkewMinutes": 5, |
|||
"RequireHttpsMetadata": true, |
|||
"SaveToken": false, |
|||
"ValidateIssuer": true, |
|||
"ValidateAudience": true, |
|||
"ValidateLifetime": true, |
|||
"KeyRotationDays": 30, |
|||
"MinKeyLength": 64 |
|||
} |
|||
} |
|||
``` |
|||
|
|||
### WebSocket配置 |
|||
```json |
|||
{ |
|||
"WebSocket": { |
|||
"Port": 5202, |
|||
"Path": "/ws" |
|||
} |
|||
} |
|||
``` |
|||
|
|||
### 认证配置 |
|||
```json |
|||
{ |
|||
"Auth": { |
|||
"MaxLoginAttempts": 5, |
|||
"LoginAttemptsWindowMinutes": 15, |
|||
"LoginAttemptsCacheKeyFormat": "LoginAttempts_{0}", |
|||
"DefaultUserRole": "User", |
|||
"AccessTokenExpirationMinutes": 60, |
|||
"RefreshTokenExpirationDays": 7 |
|||
} |
|||
} |
|||
``` |
|||
|
|||
### 日志配置 |
|||
```json |
|||
{ |
|||
"Logging": { |
|||
"LogLevel": { |
|||
"Default": "Information", |
|||
"Microsoft.AspNetCore": "Warning" |
|||
} |
|||
} |
|||
} |
|||
``` |
|||
|
|||
### 主机配置 |
|||
```json |
|||
{ |
|||
"AllowedHosts": "*" |
|||
} |
|||
``` |
|||
|
|||
## 配置项说明 |
|||
|
|||
### DatabaseOptions |
|||
- `DefaultConnection`: PostgreSQL数据库连接字符串 |
|||
- `CommandTimeout`: 数据库命令超时时间(秒) |
|||
- `EnableDetailedErrors`: 是否启用详细错误信息 |
|||
- `EnableSensitiveDataLogging`: 是否启用敏感数据日志记录 |
|||
|
|||
### JwtOptions |
|||
- `SecretKey`: JWT签名密钥 |
|||
- `Issuer`: 令牌发行者 |
|||
- `Audience`: 令牌接收者 |
|||
- `ExpiryMinutes`: 令牌过期时间(分钟) |
|||
- `RefreshTokenExpiryDays`: 刷新令牌过期时间(天) |
|||
- `ClockSkewMinutes`: 时钟偏差允许时间(分钟) |
|||
- `RequireHttpsMetadata`: 是否要求HTTPS元数据 |
|||
- `SaveToken`: 是否保存令牌 |
|||
- `ValidateIssuer`: 是否验证发行者 |
|||
- `ValidateAudience`: 是否验证接收者 |
|||
- `ValidateLifetime`: 是否验证生命周期 |
|||
- `KeyRotationDays`: 密钥轮换周期(天) |
|||
- `MinKeyLength`: 最小密钥长度 |
|||
|
|||
### WebSocket |
|||
- `Port`: WebSocket服务端口 |
|||
- `Path`: WebSocket连接路径 |
|||
|
|||
### Auth |
|||
- `MaxLoginAttempts`: 最大登录尝试次数 |
|||
- `LoginAttemptsWindowMinutes`: 登录尝试窗口时间(分钟) |
|||
- `LoginAttemptsCacheKeyFormat`: 登录尝试缓存键格式 |
|||
- `DefaultUserRole`: 默认用户角色 |
|||
- `AccessTokenExpirationMinutes`: 访问令牌过期时间(分钟) |
|||
- `RefreshTokenExpirationDays`: 刷新令牌过期时间(天) |
|||
|
|||
## 环境变量配置 |
|||
以下环境变量可以在不同环境中覆盖配置文件中的设置: |
|||
|
|||
- `ASPNETCORE_ENVIRONMENT` - 设置运行环境(Development/Production) |
|||
- `DatabaseOptions__DefaultConnection` - 数据库连接字符串 |
|||
- `JwtOptions__SecretKey` - JWT密钥 |
|||
- `WebSocket__Port` - WebSocket端口 |
|||
- `Auth__MaxLoginAttempts` - 最大登录尝试次数 |
|||
|
|||
## 配置优先级 |
|||
1. 环境变量 |
|||
2. 命令行参数 |
|||
3. 环境特定配置文件(appsettings.{Environment}.json) |
|||
4. 基础配置文件(appsettings.json) |
|||
|
|||
## 安全注意事项 |
|||
1. 生产环境中不要将敏感信息(如密钥、连接字符串)直接写入配置文件 |
|||
2. 使用环境变量或安全的密钥管理服务来存储敏感信息 |
|||
3. 确保配置文件不会被提交到版本控制系统 |
|||
4. 定期轮换JWT密钥 |
|||
5. 根据环境调整日志级别和敏感数据记录 |
Loading…
Reference in new issue