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

embedded/2024/12/19 15:47:03/

CS软件授权注册系统-WebApi<a class=服务器介绍-开发框架文库" height="267" src="https://i-blog.csdnimg.cn/img_convert/75a664240274f0e31c2533c2ce15c09f.jpeg" width="432" />

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

目录

  • WebApi服务器框架
  • VS解决方案
    • Project项目说明
    •  依赖包
    • 依赖程序集
  • WebApi接口清单
    • 管理员工具api接口(Swagger OpenApi)
    • 授权服务器api接口
  • WebApplication 介绍

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测试接口、查看接口注释及参数注释。

CS软件授权注册系统-WebApi<a class=服务器介绍" class="left" height="67" src="https://i-blog.csdnimg.cn/img_convert/205745057139d1a9f1acc2b4d2d8e402.png" width="271" />

 运行平台:跨平台,Windows / Linux
 开发工具:Visual Studio 2022,C#语言
 数据库:Microsoft SQLServer 2012,Oracle 21c,MySQL8+,达梦V8

技术栈

CS软件授权注册系统-WebApi<a class=服务器介绍" height="150" src="https://i-blog.csdnimg.cn/img_convert/4108efaab59e58540576e593b460f61e.png" width="855" />

VS解决方案

CS软件授权注册系统-WebApi<a class=服务器介绍" height="240" src="https://i-blog.csdnimg.cn/img_convert/38305d2f89ea896159e260c3858e2dcd.png" width="586" />

Project项目说明

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

 依赖包

CS软件授权注册系统-WebApi<a class=服务器介绍" class="left" height="362" src="https://i-blog.csdnimg.cn/img_convert/03448425452028f4b6b60675ec4efb29.png" width="493" />

依赖程序集

CS软件授权注册系统-WebApi<a class=服务器介绍" class="left" height="67" src="https://i-blog.csdnimg.cn/img_convert/a482403bdebfba60128785e2dc717e45.png" width="243" />

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

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

WebApi接口清单

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

CS软件授权注册系统-WebApi<a class=服务器介绍" height="746" src="https://i-blog.csdnimg.cn/img_convert/d53c14cfc97dea8c4d422fbe340b103a.png" width="862" />

CS软件授权注册系统-WebApi<a class=服务器介绍" height="903" src="https://i-blog.csdnimg.cn/img_convert/0488e1c4ecf03a5a309a8695fb92ab99.png" width="862" />

授权服务器api接口

CS软件授权注册系统-WebApi<a class=服务器介绍" height="324" src="https://i-blog.csdnimg.cn/img_convert/d761201544446119608d4e1bca95f582.png" width="822" />

WebApi服务器配置

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

appsettings.json 配置文件

jwt token配置 - JwtOptions类

CS软件授权注册系统-WebApi<a class=服务器配置" height="153" src="https://i-blog.csdnimg.cn/img_convert/a2aa762be3b9bbd123a89c1cbe47fae2.png" width="776" />

/// <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类

CS软件授权注册系统-WebApi<a class=服务器配置" height="131" src="https://i-blog.csdnimg.cn/img_convert/2e879375bf4bf0780d8f4a86cf29b034.png" width="776" />

/// <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 类

CS软件授权注册系统-WebApi<a class=服务器配置" height="203" src="https://i-blog.csdnimg.cn/img_convert/0bb183fdacee2db3a7eb30289152b138.png" width="829" />

/// <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类介绍-开发框架文库


http://www.ppmy.cn/embedded/147056.html

相关文章

qt 类中的run线程

在Qt中&#xff0c;QThread类的run()方法是线程的执行入口&#xff0c;它是由QThread内部自动调用的&#xff0c;而不是用户直接调用。 详细解释&#xff1a; QThread类&#xff1a; QThread是Qt的线程类&#xff0c;提供了用于多线程操作的接口。我们可以创建QThread对象并将…

常耀斌:深度学习和大模型原理与实战(深度好文)

目录 机器学习 深度学习 Transformer大模型架构 人工神经元网络 卷积神经网络 深度学习是革命性的技术成果&#xff0c;有利推动了计算机视觉、自然语言处理、语音识别、强化学习和统计建模的快速发展。 深度学习在计算机视觉领域上&#xff0c;发展突飞猛进&#xff0c;…

【ETCD】ETCD 架构揭秘:内部各组件概览

ETCD 的主要组件及它们之间的关联关系如下&#xff1a; 目录 1. Client&#xff08;客户端&#xff09;2. gRPC 接口3. Etcd Server Main Loop&#xff08;ETCD 主循环&#xff09;4. Raft&#xff08;共识模块&#xff09;5. Peer Etcd Nodes&#xff08;ETCD 集群节点&#x…

Git简介和特点

目录 一、Git简介 二、Git特点 1.集中式和分布式 (1)集中式版本控制系统 (2)分布式版本控制系统 2.版本存储方式的差异 (1)直接记录快照&#xff0c;而非差异比较 3.近乎所有操作都是本地执行 一、Git简介 Git是目前世界上最先进的的分布式控制系统&#xff08;没有之一…

Springboot中使用Retrofit

Retrofit官网 https://square.github.io/retrofit/ 配置gradle implementation("com.squareup.okhttp3:okhttp:4.12.0")implementation ("com.squareup.retrofit2:retrofit:2.11.0")implementation ("com.squareup.retrofit2:converter-gson:2.11.0…

使用ENSP实现NAT(2)

一、NAT的类型 二、静态NAT 1.项目拓扑 2.项目实现 路由器AR1配置&#xff1a; 进入系统视图 sys将路由器命名为AR1 sysname AR1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为192.168.10.254/24 ip address 192.168.10.254 24进…

kali配置静态ip(2024图文教程)

刚安装完kali是动态IP的&#xff0c;每次重启的时候IP都不同&#xff0c;当我们使用ssh和apache(nginx)等都不方便&#xff0c;所以我们配置静态IP&#xff0c;让每时每刻都使用着同一个IP。 一&#xff0c;kali安装教程&#xff1a; 转&#xff1a;kali Linux 2024.3安装教程…

最新ubuntu20.04安装docker流畅教程

最新ubuntu20.04安装docker流畅教程 使用清华镜像源 //编辑/etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-sr…