Winform C/S架构软件用户授权注册系统V2.1新功能(2021版)
作者:作者不详  发布日期:2021/06/02 16:16:09
  Winform C/S架构软件用户授权注册系统V2.1新功能(2021版)


云鹊用户授权注册软件系统 V2.1 (2021-release)

适用软件 适用软件:C/S系统、Winform桌面应用软件。
运行平台 运行平台:Windows + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2015,C#语言
数据库 数据库:Microsoft SQLServer 2008R2

Winform C/S架构软件用户授权注册系统V2.1新功能(2021版)






 产品介绍


  云鹊用户授权系统是新一代的软件加密保护系统,功能全面,兼容性好,能快速集成及应用,拥有多项自主创新技术,为满足C/S框架网用户提出的需求,针对C/S系统开发框架新老用户量身打造。


 系统功能 

  1) 软件用户管理(客户名单管理);
  2) 注册码管理(包括生成注册码,授权类型:单个注册码、无限制授权、时间限制、使用次数限制、使用天数限制);
  3) 软件功能菜单管理(导入菜单、自定义软件功能、分配权限);
  4) 软件注册(用户端注册),支持两种连接方式(WCF服务器,CSFramework.WebApi服务器);
  5) WCF服务器控制台;
  6) 注册日志报表;
  7) 软件使用活跃度报表;
  8) 软件推广通知、产品升级说明(后续升级);
  9) 查看证书详情;
  10) 测试案例;



2021升级-新功能:

  11) 授权系统服务端分离(支持数据库直连、WCF服务、WebApi服务器三种连接方式)
  12) 前、后端全部采用接口设计、数据模型界面交互。
  13) 重构两种接口服务:授权系统管理员工具服务、终端用户注册服务
  14) 采用最新版CSFramework.DB数据库底层组件,支持多种数据库(MySQL/Oracle/MsSQL)
  15) 优化用户界面,更美观、更专业
  16) 重新设计主窗体功能菜单
  17) 支持添加自定义软件功能




 软件授权系统体系架构图


云鹊用户授权注册软件系统-体系架构图


 软件授权注册系统组成

云鹊用户授权注册软件系统-系统组成



 软件授权注册系统 – 终端用户连接策略

云鹊用户授权注册软件系统-终端用户连接策略



 软件授权注册系统 – 管理员工具连接策略

云鹊用户授权注册软件系统-管理员工具连接策略



 软件授权注册系统 – VS2017 解决方案


云鹊用户授权注册软件系统-VS解决方案


贴图图片-CSFramework软件授权系统VS解决方案




 软件授权系统管理员工具 - 系统登录界面


云鹊用户授权注册软件系统-系统登录界面



 软件授权系统管理员工具 - 系统主界面


云鹊用户授权注册软件系统-主界面




 软件授权系统 - 源码赏析 - 管理员工具数据提供者


C# Code:


/// <summary>
/// 授权系统管理员工具 - 后端服务器连接策略(1. Ado直连数据库, 2.WebApi)
/// </summary>
public static class DataServiceAdminProvider
{
  
  
/// <summary>
  
/// 当前连接方式(策略接口)
  
/// </summary>
  
public static IDataServiceAdmin Current { get; set; }
  
  
/// <summary>
  
/// 初始化后端服务器连接策略
  
/// </summary>
  
/// <param name="connType">返回服务端连接类型(DbServer/WebApi)</param>
  
/// <returns></returns>
  
public static bool InitDataService(out string connType)
  {
    
//标记是否初始化成功
    
bool isInit = false;
    
    
//读取INI文件信息
    
string file = Application.StartupPath + LicCommon.DEF_ADMINTOOL_CFG;
    LicIniFile ini
= new LicIniFile(file);
    
    
string type = ini.IniReadValue("Options", "ServerType");//服务器连接方式
    
string url = ini.IniReadValue("Options", "WebApiUrl");
    
string dbType = ini.IniReadValue("Options", "DatabaseType");
    
string connStr = LicEncoder.Decode(ini.IniReadValue("Options", "ConnectionString"), PrivateKey.P1, PrivateKey.P2);
    
    
//默认Ado直连数据库
    
if (String.IsNullOrWhiteSpace(type)) connType = DataServiceTypeAdminTool.DbServer.ToString();
    
    
//1.Ado直连数据库
    
if (type == DataServiceTypeAdminTool.DbServer.ToString() && !String.IsNullOrWhiteSpace(connStr))
    {
      DALLicenseTool DAL
= new DALLicenseTool(connStr, dbType);
      
      isInit
= DAL.TestConnection();
      
if (isInit) DataServiceAdminProvider.Current = DAL;
    }
    
    
//2.WebApi连接方式
    
if (type == DataServiceTypeAdminTool.WebApi.ToString() && !String.IsNullOrWhiteSpace(url))
    {
      DataServiceWebApiAdmin webapi
= new DataServiceWebApiAdmin(url);
      
      isInit
= webapi.TestConnection();
      
if (isInit) DataServiceAdminProvider.Current = webapi;
    }
    
    connType
= type;
    
    
return isInit;
  }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





 软件授权系统 - 源码赏析 - 调用CSFramework.WebApi接口



C# Code:

/// <summary>
/// 添加软件用户
/// </summary>
/// <param name="lic"></param>
/// <returns></returns>
public bool CustomerRegister_Add(CSLicense lic)
{
  ModelResponse R
= DoApi(lic, "api/do/post", "CustomerRegister_Add", _baseUrl);
  
return (R != null && R.Code == 0);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761







 软件授权系统 - 源码赏析 - 数据访问层添加软件用户



C# Code:

/// <summary>
/// 添加软件用户
/// </summary>
/// <param name="lic"></param>
/// <returns></returns>
public bool CustomerRegister_Add(CSLicense lic)
{
  sys_ProductUser user
= DataConverter.ToDataModel(lic);
  DbDataUpdate data
= new DbDataUpdate(this.db);
  
return data.AddObject<sys_ProductUser>(user, new string[] { "isid" });
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





 软件授权系统 - 源码赏析 - 用户终端数据提供者




C# Code:


/// <summary>
///
/// 后端服务器数据提供者(授权系统用户终端使用)
///
/// 后端服务器连接策略(1.WCF授权中心, 2.WCF代理服务器,3.WebApi服务器)
/// </summary>
public class DataServiceClientProvider
{
  
  
/// <summary>
  
/// 创建数据提供着实例
  
/// </summary>
  
/// <param name="connType">连接类型</param>
  
/// <param name="url">服务器地址</param>
  
/// <returns></returns>
  
public static IDataServiceClient Create(LicConnectType connType, string url)
  {
    
//终端用户连接WCF授权中心(外网)
    
if (LicConnectType.LicenseServer == connType)
    
return new DataServiceWcfClient(url);
    
    
//终端用户连接 WCF本地代理授权服务器(内网)
    
if (LicConnectType.LocalProxyServer == connType)
    
return new DataServiceWcfClientProxy(url);
    
    
//终端用户连接WebApi服务器(内网或外网)
    
if (LicConnectType.WebApiServer == connType)
    
return new DataServiceWebApiClient(url);
    
    
//默认为=LicenseServer
    
return new DataServiceWcfClient(url);
  }
  
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761







C# Code:

/// <summary>
/// 授权中心服务器连接类型(终端用户使用)
/// </summary>
public enum LicConnectType
{
  
/// <summary>
  
/// 主服务器
  
/// </summary>
  
LicenseServer = 0,
  
  
/// <summary>
  
/// 本地代理服务器
  
/// </summary>
  
LocalProxyServer = 1,
  
  
/// <summary>
  
/// WebApi授权服务器
  
/// </summary>
  
WebApiServer = 2,
  
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





 软件授权系统 - 源码赏析 - 用户终端输入注册码开始软件注册




C# Code:


/// <summary>
/// 软件注册
/// </summary>
/// <param name="connType">服务器连接类型</param>
/// <param name="uri">服务器地址</param>
/// <param name="licenseNo">软件客户识别码</param>
/// <param name="registerNo">注册号码</param>
/// <param name="HID">设备识别码</param>
/// <returns></returns>
public ModelRegisteResult Register(LicConnectType connType, string uri, string licenseNo, string registerNo, string HID)
{
  IDataServiceClient client
= DataServiceClientProvider.Create(connType, uri);
  
return client.Register(licenseNo, registerNo, HID);
}


//来源:C/S框架网 | www.csframework.com | QQ:23404761




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

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



上一篇 下一篇