C/S客户端软件授权设计方案 - MAC地址白名单+软件到期时间授权
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地址是否在白名单存在以及判断软件到期时间,如果白名单不存在或者软件过期,系统抛出异常,终止操作。
处理过程:
- 设计一个MAC地址白名单表,用于登记用户端电脑的MAC地址。
- 用户登陆,获取MAC地址。
- 判断当用户的MAC地址是否在白名单内,若不存在,终止用户操作。
- 判断当前时间>软件到期时间(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地址,存储加密的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);
//省略代码......
}
业务单据界面操作 - 查询/保存数据
dalXXX.Query方法:
C#全选
public List<res_PO> Query(QueryPO input)
{
//验证软件证书,如:在线用户并发数、软件过期
this.AssertLicense(MethodBase.GetCurrentMethod().Name, true);
//省略代码......
}
dalXXX.Update方法:
C#全选
public SaveResult Update(BusinessData<tb_PO, tb_POs> data)
{
//验证软件证书,如:在线用户并发数、软件过期
this.AssertLicense(MethodBase.GetCurrentMethod().Name, true);
//省略代码.....
}
三、MAC地址登记 - MAC白名单管理
参考: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地址+白名单用户)
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网