docs: update doc

This commit is contained in:
wintel
2025-04-26 11:57:13 +08:00
parent 8c129d6746
commit 107e297e01
14 changed files with 76 additions and 47 deletions

View File

@@ -34,12 +34,12 @@ public static void InitAutofac(ContainerBuilder builder)
_cacheContext.Set(currentSession.Token, currentSession, DateTime.Now.AddDays(10));
```
::: warning 注意事项1
::: warning 注意1
默认使用的是.net的内存Cache在用IIS发布后由于IIS本身存在自动回收的机制会导致系统缓存20分钟就会失效。
:::
::: warning 注意事项2
::: warning 注意2
如果使用Redis缓存注意调整配置文件中关于redis的配置
```csharp

View File

@@ -1,13 +1,14 @@
---
title: WebApi请求验证
title: 接口数据验证
createTime: 2025/04/23 21:03:10
permalink: /core/datavalidation/
---
# WebApi请求验证
框架提供灵活的实体模型验证功能。可以方便地对实体进行验证。只需两步即可:
数据验证是做接口开发时一个非常重要的功能它用来确保调用API时传入的数据完整和正确。框架提供灵活的实体模型验证功能。可以方便地对实体进行验证。只需两步即可:
1. 在实体类中使用特性Attributes来定义验证规则。
2. 业务代码中执行验证
## 增加注解
## 定义验证规则
在请求参数中添加验证注解
@@ -42,7 +43,7 @@ namespace OpenAuth.App.Request
}
```
## 业务代码中验证
## 执行验证
在OpenAuth.App中调用验证

View File

@@ -1,9 +1,11 @@
---
title: 数据库实体
title: 数据库主键
createTime: 2025/04/23 21:03:10
permalink: /core/entity/
---
目前框架主键默认为`Id`类型为String如果需要修改主键名称或类型可以参考本章节内容。
## 更换主键名称
系统默认的主键是以`Id`命名,如果数据库主键是其他名称,可以直接用注解进行更改:
@@ -19,9 +21,9 @@ permalink: /core/entity/
- `StringEntity`针对数据库主键为varchar类型的数据表,主键按guid方式生成;
- `LongEntity`针对数据库主键为numberic(15)的数据表,主键按雪花算法生成;【新功能,官方推荐使用方式👍】
- `LongEntity`针对数据库主键为numberic(15)的数据表,主键按雪花算法生成;
- `IntAutoGenEntity`针对数据库主键为numberic且为数据库自动生成的类型表通常为SqlServer的自动增长类型和Oracle的Sequence生成【新功能】
- `IntAutoGenEntity`针对数据库主键为numberic且为数据库自动生成的类型表通常为SqlServer的自动增长类型和Oracle的Sequence生成
这三个基类可以覆盖90%以上的业务场景。如果这两个不能满足需求,可以自己按需求扩展。参考代码如下:
@@ -123,9 +125,3 @@ namespace OpenAuth.App
然后就可以像其他应用服务一样使用这个服务
::: warning 注意
最新版才支持以前的版本2.0或以前的版本可以参考BaseEntity进行改造
:::

View File

@@ -10,7 +10,7 @@ OpenAuth.Net集成了表单设计的功能目前表单仅用于流程审批
动态表单基于Ueditor富文本编辑器适用于灵活设计界面逻辑简单的表单。这种表单无需编码即可直接集成到流程功能。
::: warning 注意事项
::: warning 注意
因Vform功能已经全面覆盖Ueditor且用户体验更好所以动态表单在vue3版本已废弃目前开源版、vue2版本历史原因还保留。
:::

View File

@@ -1,9 +1,11 @@
---
title: 登录认证
createTime: 2025/04/23 21:03:10
headerDepth: 4
permalink: /core/identity/
---
## 前言
OpenAuth.Net支持两种登录认证方式token认证和自己搭建的OpenAuth.IdentityServer认证。
这两种方式通过配置webapi或mvc的appsettings.json可以自由切换:
@@ -11,8 +13,13 @@ OpenAuth.Net支持两种登录认证方式token认证和自己搭建的OpenAu
```json
"IdentityServerUrl": "http://localhost:12796", //IdentityServer服务器地址。如果为空则不启用OAuth认证
```
## token认证
1. 当IdentityServerUrl为空采用普通的token认证这时不需要OpenAuth.Identity启动支持。无论是OpenAuth.Mvc还是OpenAuth.WebApi都会在请求头中添加X-Token字段携带token值。以OpenAuth.WebApi为例客户端在访问的接口时先调用登录接口,得到授权token
我们启动OpenAuth.WebApi/Mvc时如果IdentityServerUrl为空采用普通的token认证这时不需要启动OpenAuth.Identity项目
```json
"IdentityServerUrl": "", //如果为空则采用普通的token认证
```
这时前端发出请求时会在请求头中添加X-Token字段携带token值。以OpenAuth.WebApi为例客户端在访问的接口时先调用登录接口,得到授权token
![20220119182845](http://img.openauth.net.cn/20220119182845.png)
@@ -20,22 +27,27 @@ OpenAuth.Net支持两种登录认证方式token认证和自己搭建的OpenAu
![20220119182853](http://img.openauth.net.cn/20220119182853.png)
2. 当IdentityServerUrl配置了地址时则采用自己搭建的OpenAuth.IdentityServer认证方式。
## OpenAuth.IdentityServer认证
不同于其他项目的统一登录(如微信登录、支付宝登录等),OpenAuth.Net的统一登录指的是自己搭建一套OAuth登录服务提供给其他项目使用。即OpenAuth.IdentityServer。这种模式下无论是OpenAuth.Mvc还是OpenAuth.WebApi都只是它的客户端。
不同于其他项目的统一登录(如微信登录、支付宝登录等),OpenAuth.Net的统一登录指的是自己搭建一套OAuth登录服务提供给其他项目使用。即OpenAuth.IdentityServer。
当我们启动OpenAuth.WebApi/Mvc时如果IdentityServerUrl为空则采用OAuth认证
```json
"IdentityServerUrl": "http://localhost:12796", //IdentityServer服务器地址。
```
这种模式下需要先启动OpenAuth.Identity项目OpenAuth.Mvc或OpenAuth.WebApi项目才能正常运行。
![2025-03-18-23-12-18](http://img.openauth.net.cn/2025-03-18-23-12-18.png)
## OpenAuth.Mvc OAuth认证
### OpenAuth.Mvc接入
当启用了Identity时系统启动后界面如下:
当启用了Identity时mvc启动后界面如下:
![2025-04-24-00-24-28](http://img.openauth.net.cn/2025-04-24-00-24-28.png)
这时点击登录超链接会跳转到OpenAuth.Identity登录界面。效果如下
![2025-04-24-00-24-40](http://img.openauth.net.cn/2025-04-24-00-24-40.png)
## OpenAuth.WebApi OAuth
### OpenAuth.WebApi接入
当启用了Identity时客户端调用API需要先通过OpenAuth.IdentityServer服务器的OAuth验证才能调用接口。OpenAuth.Net调用API的客户端有两种

View File

@@ -6,7 +6,7 @@ permalink: /core/multidbs/
框架支持同时访问多个数据库。具体操作如下:
## 添加新数据库连接字符串
## 添加新连接字符串
在配置文件appsettings.json中添加新的连接字符串`OpenAuthDBContext2`
@@ -23,7 +23,7 @@ permalink: /core/multidbs/
}
```
## 添加新的数据上下文
## 添加数据上下文
在OpenAuth.Repository中添加新的数据库上下文比如`OpenAuthDBContext2`

View File

@@ -4,8 +4,16 @@ createTime: 2025/04/23 21:03:10
permalink: /core/sqlsugar/
---
SqlSugar 是一款老牌.NET开源ORM框架相对于EntityFramework复杂的Linq表达式它拥有灵活的动态查询如果你喜欢直接码Sql那么它是你的不二之选。OpenAuth.Net 6.0及以后版本默认支持使用SqlSugar方式访问数据库。目前大多数模块都已使用SqlSugar的方式这里以资源管理为例
SqlSugar 是一款老牌.NET开源ORM框架相对于EntityFramework复杂的Linq表达式它拥有灵活的动态查询如果你喜欢直接码Sql那么它是你的不二之选。OpenAuth.Net 6.0及以后版本默认支持使用SqlSugar方式访问数据库。
框架提供`SqlSugarBaseApp`基类该基类定义了SqlSugar最常用的两个成员变量
```csharp
protected ISqlSugarClient SugarClient; //SqlSugar基础数据库读写
protected SqlSugarRepository<T> Repository; //SqlSugar的仓储模式
```
只需要继承该基类即可使用SqlSugar的强大功能。
目前框架大多数模块都已继承`SqlSugarBaseApp`基类,这里以资源管理为例:
```csharp
public class ResourceApp:SqlSugarBaseApp<Resource>
{
@@ -39,9 +47,10 @@ public class ResourceApp:SqlSugarBaseApp<Resource>
## 使用方法
如上所示代码,只需要继承`SqlSugarBaseApp`即可使用SqlSugar强大功能。其中
当编写业务代码需要使用SqlSugar的模块时,只需要继承`SqlSugarBaseApp`即可使用SqlSugar强大功能。其中
Repository实现的是SqlSugar的仓储模式详细Api请查看[SqlSugar使用仓储](https://www.donet5.com/Home/Doc?typeId=1228)。在OpenAuth.Net中
### Repository
实现的是SqlSugar的仓储模式详细Api请查看[SqlSugar使用仓储](https://www.donet5.com/Home/Doc?typeId=1228)。在OpenAuth.Net中
```csharp
public class ResourceApp:SqlSugarBaseApp<Resource>
{
@@ -52,8 +61,8 @@ public class ResourceApp:SqlSugarBaseApp<Resource>
}
}
```
SugarClientSqlSugar基础数据库读写用法。详细Api请查看[SqlSugar入门必看](https://www.donet5.com/Home/Doc?typeId=1181)。在OpenAuth.Net中
### SugarClient
SqlSugar基础数据库读写用法。详细Api请查看[SqlSugar入门必看](https://www.donet5.com/Home/Doc?typeId=1181)。在OpenAuth.Net中
```csharp
public class ResourceApp:SqlSugarBaseApp<Resource>
{

View File

@@ -1,10 +1,23 @@
---
title: 数据库读写及事务处理
title: EF操作数据库
createTime: 2025/04/23 21:03:10
permalink: /core/unitwork/
---
OpenAuth.Net使用Repository和Unitwork两种方式访问数据库。
OpenAuth.Net支持EF操作数据库提供了IRepository和IUnitWork两个接口,分别用于单表操作和事务操作。框架自带的`BaseApp``BaseStringApp``BaseLongApp`等基类,都包含有这两个接口的实例:
```csharp
/// <summary>
/// 用于普通的数据库操作
/// </summary>
protected IRepository<T, TDbContext> Repository;
/// <summary>
/// 用于事务操作
/// </summary>
protected IUnitWork<TDbContext> UnitWork;
```
因此,当我们编写应用层代码时,只要继承`BaseApp``BaseStringApp``BaseLongApp`等基类,就可以使用这两个接口。
## 使用场景