C/S软件授权注册系统-轻量级WebApi服务器介绍

CS软件授权注册系统-WebApi服务器介绍

目录

WebApi服务器框架

CSFramework.License授权服务器基于.NET8+Asp.NetCore+EF Core 搭建的Web API轻量级应用服务器,可用于各种行业软件的应用服务器或微服务应用,如:MES/ERP/APP等软件。

作为轻量级WebApi框架,技术架构包括逻辑分层、接口设计、接口安全以及客户端应用等方面已搭建各种应用场景,开发人员只需要关注业务方面的开发,提升开发效率。

WebApi服务器技术实现

  • Api接口数据加密:前端数据签名、后端验签,防数据篡改。
  • 统一格式返回数据机制:统一返回特定格式的数据模型,前端自动解析JSON获得实例。
  • 全局异常处理过滤器:自动拦截系统异常并写入异常日志表。
  • 接口全局日志中间件:自动拦截api接口请求,并写入接口日志表。
  • jwt令牌及认证体系:框架使用jwt令牌,用户登录生成JWT token,支持Swagger使用Bearer测试api接口。
  • 接口动态代理技术:使用Castle.DynamicProxy轻松解决代理接口技术,让依赖注入更灵活使用。
  • 前后端通用DAL层设计:支持数据库直连、WebApi连接两种方式,DAL层在三层架构前端或WebApi后端共用一套源码。
  • EF数据库框架:通用数据库框架,支持多种主流数据库。
  • 集成Swagger OpenApi:方便使用swagger测试接口、查看接口注释及参数注释。

运行平台:跨平台,Windows / Linux

开发工具:Visual Studio 2022,C#语言

数据库:Microsoft SQLServer 2012,Oracle 21c,MySQL8+,达梦V8

技术栈

VS解决方案

Project项目说明

|---|-------------------------------|---------------------------------------------|
| 序 | Project Name /项目名 | 项目说明 |
| 1 | CSFramework.LicenseCore | .NETCore核心库。管理员工具、WebApi服务器、MES/ERP等客户系统使用。 |
| 2 | CSFramework.LicenseCoreWebApi | WebApi服务端核心库。 |
| 3 | CSFramework.LicenseDAL | 数据访问层。 |
| 4 | CSFramework.LicenseModels | 实体类模型类库 |
| 5 | CSFramework.LicenseServerV3 | WebApi服务器 |

依赖包

依赖程序集

参考:CSFramework.EF数据库框架简介

CSFramework.EF数据库框架简介-开发框架文库

WebApi接口清单

管理员工具api接口(Swagger OpenApi)

授权服务器api接口

WebApi服务器配置

包括WebApi服务器参数配置和启动服务配置。

appsettings.json 配置文件

jwt token配置 - JwtOptions类
复制代码
/// <summary>
/// JWT配置信息。用于加载appsettings.json配置文件的jwt配置信息
/// </summary>
public class JwtOptions
{
    [Display(Name = "Secret Key jwt令牌加密秘钥")]
    public string Secret { get; set; }

    [Display(Name = "Access Expire Hours 访问令牌的有效截止时间")] 
    public int AccessExpireHours { get; set; }

    [Display(Name = "Refresh Expire Hours 刷新令牌的有效截止时间")]
    public int RefreshExpireHours { get; set; }

    [Display(Name = "Issuer 发送方")]
    public string Issuer { get; set; }

    [Display(Name = "Audience 接收方")]
    public string Audience { get; set; }
}
RSA加密 - DataSignKeys类
复制代码
/// <summary>
/// RSA加密参数
/// </summary>
public class DataSignKeys
{
    /// <summary>
    /// 开发者账号
    /// </summary>
    public string AppId { get; set; }

    /// <summary>
    /// 公钥
    /// </summary>
    public string PublicKey { get; set; }

    /// <summary>
    /// 私钥
    /// </summary>
    public string PrivateKey { get; set; }

    /// <summary>
    /// 安全私钥
    /// </summary>
    public string SecretKey { get; set; }

}
数据库连接 - DatabaseOptions 类
复制代码
/// <summary>
/// 数据库连接参数配置(加载appsettings.json)
/// </summary>
internal class DatabaseOptions
{  /// <summary>
   /// 连接字符串
   /// </summary>
    public string ConnectionString { get; set; }

    /// <summary>
    /// 数据库类型
    /// </summary>
    public DatabaseType DatabaseType { get; set; }

    /// <summary>
    /// 数据库连接类型。参考值:Database/Service/SID
    /// </summary>
    public string ServiceOrSID { get; set; }

    /// <summary>
    /// 架构,服务名(oracle)
    /// </summary>
    public string Schema { get; set; }

}

初始化 CSFramework.EF数据库组件

Program.cs

复制代码
GlobalAssemblies.LoadAssemblies();

//数据库引擎注册实体模型
DatabaseEngine.Register(GlobalAssemblies.GetTypes().ToList());

参考文档

发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)-开发框架文库

WebApplication 介绍

WebApplication作为WebApi轻量级框架的Web服务主机,提供这篇文档给大家全面掌握WebApi技术。

ASP.NETCore的WebApplication类和WebApplicationBuilder类介绍:

ASP.NETCore的WebApplication类和WebApplicationBuilder类介绍-开发框架文库

相关推荐
分布式存储与RustFS1 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希1232 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡2 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾3 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
讯捷蓝达8 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
波力海苔夹心脆6758 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
数字新视界11 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落11 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
追逐时光者11 小时前
一款基于 .NET 开源、免费的数据库自治诊断平台
后端·.net
AI导出鸭PC端11 小时前
Perplexity批量导出没有PDF模式?AI导出鸭插件补上最后一块拼图
人工智能·pdf·c#·ai导出鸭