C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/11/29 14:52:58

C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架

C/S客户端软件授权设计方案 - MAC地址白名单+软件到期时间授权

一、设计目的

我们的客户开发了ERP或MES系统,需要通过MAC地址白名单以及软件到期时间控制客户端软件运行。

  • 当用户的MAC地址没有在白名单内,终止用户操作。
  • 当前时间>软件到期时间(Expire Time),终止用户操作。

1.1、开发环境

  • VS2022,C#,.NET8,EFCore
  • SqlServer 2012(阿里云ECS服务器)
  • Windows 10
  • 开发框架:CSFrameworkV6.1(2024版)

二、设计方案

2.1、基本原理

用户终端以mac地址作为唯一标识,用户登录时校验mac地址白名单以及软件到期时间,如果白名单不存在或者软件过期,系统抛出异常,并终止操作。

处理过程:

  1. 设计一个mac地址白名单表,用于登记用户终端电脑的mac地址。
  2. 用户登陆,获取mac地址。
  3. 当用户的MAC地址没有在白名单内,终止用户操作。
  4. 当前时间>软件到期时间(Expire Time),终止用户操作。

2.2、新建 sys_UserLicenseWhitelist 表 - MAC地址白名单表

在CSFrameworkV6_System(系统数据库)新建 sys_UserLicenseWhitelist 表。

作用:该表用于登记用户的MAC地址。

SQL脚本

C# 全选
CREATE TABLE [dbo].[sys_UserLicenseWhitelist](
	[isid] [varchar](50) NOT NULL,
	[SystemCode] [varchar](50) NULL,
	[MAC] [varchar](50) NULL,
	[ExpireTime] [datetime] NULL,
	[FlagUse] [varchar](1) NULL,
	[Remark] [varchar](200) NULL,
	[CreationTime] [datetime] NULL,
	[CreatedBy] [varchar](50) NULL
)

字段说明

  • isid:主键,雪花id
  • SystemCode:系统编码,如:ERP/MES/CSFrameworkV6
  • MAC:mac地址
  • ExpireTime:软件过期时间
  • FlagUse:是否启用,Y:启用,N:不启用
  • Remark:备注
  • CreationTime:记录创建时间
  • CreatedBy:创建人

2.4、dalUser.Login 用户登录接口(校验软件授权)

开始登录,检查软件授权

        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="loginUser">登录信息</param>
        /// <returns></returns>
        public Core.LoginUser Login(CSFrameworkV6.Core.LoginUser loginUser)
        {
            //验证软件证书,如:在线用户并发数、软件过期
            this.AssertLicense(MethodBase.GetCurrentMethod().Name, true, true, loginUser.Account, loginUser.MAC);

            //省略代码......
        }

2.5、校验MAC白名单(校验软件授权)

基础资料界面操作

dalBaseDataDic.Update 方法:

C# 全选
        public virtual bool Update(MasterDataUpdate<T> data)
        { 
            //验证软件证书,如:在线用户并发数、软件过期
            this.AssertLicense(MethodBase.GetCurrentMethod().Name, true);
            //省略代码......
        }

业务单据界面操作

Query方法

C#全选
        public List<res_PO> Query(QueryPO input)
        {
            //验证软件证书,如:在线用户并发数、软件过期
            this.AssertLicense(MethodBase.GetCurrentMethod().Name, true);

            //省略代码......
        }

Update方法

C#全选
        public SaveResult Update(BusinessData<tb_PO, tb_POs> data)
        {
            //验证软件证书,如:在线用户并发数、软件过期
            this.AssertLicense(MethodBase.GetCurrentMethod().Name, true);
            //省略代码.....
        }

三、MAC地址登记 - MAC白名单管理

C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架

参考:CSFramework.Authentication 软件授权认证系统 用户操作手册。

https://www.cscode.net/archive/csframework-authentication/616557864030213.html

四、参考文章

C/S客户端软件授权设计方案 - 在线用户并发数+软件到期时间授权

https://www.cscode.net/archive/newdoc/616540024209413.html

.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)

https://www.cscode.net/archive/newdoc/615796830072837.html

C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇