mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-20 02:29:24 +08:00
docs: update doc
This commit is contained in:
@@ -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
|
||||
|
@@ -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中调用验证
|
||||
|
||||
|
@@ -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进行改造
|
||||
|
||||
:::
|
||||
|
||||
|
||||
|
@@ -10,7 +10,7 @@ OpenAuth.Net集成了表单设计的功能,目前表单仅用于流程审批
|
||||
|
||||
动态表单基于Ueditor富文本编辑器,适用于灵活设计界面,逻辑简单的表单。这种表单无需编码,即可直接集成到流程功能。
|
||||
|
||||
::: warning 注意事项
|
||||
::: warning 注意
|
||||
因Vform功能已经全面覆盖Ueditor,且用户体验更好,所以动态表单在vue3版本已废弃,目前开源版、vue2版本历史原因还保留。
|
||||
|
||||
:::
|
||||
|
@@ -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:
|
||||
|
||||

|
||||
|
||||
@@ -20,22 +27,27 @@ OpenAuth.Net支持两种登录认证方式:token认证和自己搭建的OpenAu
|
||||
|
||||

|
||||
|
||||
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项目才能正常运行。
|
||||
|
||||

|
||||
|
||||
## OpenAuth.Mvc OAuth认证
|
||||
### OpenAuth.Mvc接入
|
||||
|
||||
当启用了Identity时,系统启动后界面如下:
|
||||
当启用了Identity时,mvc启动后界面如下:
|
||||

|
||||
|
||||
这时点击登录超链接,会跳转到OpenAuth.Identity登录界面。效果如下:
|
||||

|
||||
|
||||
|
||||
## OpenAuth.WebApi OAuth
|
||||
### OpenAuth.WebApi接入
|
||||
|
||||
当启用了Identity时,客户端调用API需要先通过OpenAuth.IdentityServer服务器的OAuth验证,才能调用接口。OpenAuth.Net调用API的客户端有两种:
|
||||
|
||||
|
@@ -6,7 +6,7 @@ permalink: /core/multidbs/
|
||||
|
||||
框架支持同时访问多个数据库。具体操作如下:
|
||||
|
||||
## 添加新数据库连接字符串
|
||||
## 添加新连接字符串
|
||||
|
||||
在配置文件appsettings.json中,添加新的连接字符串`OpenAuthDBContext2`
|
||||
|
||||
@@ -23,7 +23,7 @@ permalink: /core/multidbs/
|
||||
}
|
||||
```
|
||||
|
||||
## 添加新的数据上下文
|
||||
## 添加数据上下文
|
||||
|
||||
在OpenAuth.Repository中添加新的数据库上下文,比如`OpenAuthDBContext2`
|
||||
|
||||
|
@@ -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>
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
SugarClient:即SqlSugar最基础的数据库读写用法。详细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>
|
||||
{
|
||||
|
@@ -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`等基类,就可以使用这两个接口。
|
||||
|
||||
## 使用场景
|
||||
|
||||
|
Reference in New Issue
Block a user