Blazor前后端框架Known功能介绍:系统安装激活及自定义

news2024/12/26 0:55:23

本章介绍系统安装与激活及其自定义功能。

概述

  • 框架内置简单的系统安装功能。
  • 录入企业编码、名称、系统名称、产品密钥、管理员密码信息完成安装。
  • 可自定义高级安装功能,如安装数据库等您产品所需的安装信息。
  • 框架默认无需注册产品密钥,若产品需要安装产品密钥进行激活,可进行自定义。
  • 若产品密钥到期,所有模块页面自动显示授权激活组件。

自定义安装

若需自定义系统安装功能,则完成如下步骤即可。

1. 构建安装模块

//自定义安装页面类
class MyInstall : Form
{
    private InstallInfo? info;
    private readonly List<MenuItem> items = new()
    {
        new MenuItem{Icon="fa fa-home",Name="步骤一"},
        new MenuItem{Icon="fa fa-home",Name="步骤二"},
        new MenuItem{Icon="fa fa-home",Name="步骤三"}
    };
    //安装成功后回调
    [Parameter] public Action<CheckInfo>? OnInstall { get; set; }
    
    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        //使用内置Steps组件构造分步表单
        builder.Component<Steps>()
               .Set(c => c.Items, items)
               .Set(c => c.OnChanged, OnChanged)
               .Set(c => c.OnFinished, OnFinished)
               .Set(c => c.Body, BuildStep)
               .Build();
    }
    //建造步骤内容
    private void BuildStep(RenderTreeBuilder builder, MenuItem item)
    {
        builder.Span(item.Name);
    }
    //每一步保存
    private void OnChanged(MenuItem item)
    {
        //在此异步请求各步骤的后端逻辑
        UI.Tips($"保存{item.Name}");
    }
    //最后一步完成
    private void OnFinished()
    {
        //调用内置保存安装信息方法
        SubmitAsync(data => Platform.System.SaveInstallAsync(info), result =>
        {
            if (result.IsValid)
                OnInstall?.Invoke(result.DataAs<CheckInfo>());
        });
    }
}

2. 重写Index的BuildInstall

public class Index : Known.Razor.Pages.Index
{
    protected override void BuildInstall(RenderTreeBuilder builder)
    {
        //Build自定义Install
        builder.Component<MyInstall>().Set(c => c.OnInstall, OnInstall).Build();
    }
}

自定义产品ID

  • 产品ID默认识别主机的MAC地址。
  • 若需自定义ID格式及识别方式,在后端初始化方法中注册自定义方法即可。
public class AppCore
{
    public static void Initialize()
    {
        //注册自定义产品ID
        PlatformHelper.ProductId = MyCheck.GetProductId;
        ...
    }
}

自定义产品密钥

  • 框架默认不验证产品ID和密钥。
  • 若产品需要安装密钥才能使用,在后端初始化方法中注册验证方法即可。
public class AppCore
{
    public static void Initialize()
    {
        //注册安装页面自动刷新产品密钥
        PlatformHelper.UpdateKey = MyCheck.UpdateKey;
        //注册产品密钥验证
        PlatformHelper.CheckSystem = MyCheck.CheckSystem;
        //注册用户数限制
        PlatformHelper.CheckUser = MyCheck.CheckUser;
        ...
    }
}

效果图

在这里插入图片描述

Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。

  • Gitee: https://gitee.com/known/Known

  • Github:https://github.com/known/Known

  • 基于C#和Blazor实现的快速开发框架,前后端分离,开箱即用。

  • 跨平台,单页应用,混合桌面应用,Web和桌面共享一处代码。

  • 包含模块、字典、组织、角色、用户、日志、消息、工作流、定时任务等功能。

  • 代码简洁、易扩展,让开发更简单、更快捷!

如果对您有帮助,点击⭐Star⭐关注 ,感谢支持开源!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/727262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【腾讯云IM】即时通讯的登录,登出,用户列表,私聊,图片发送

uniapp即时通讯 1&#xff0c;初始化&#xff08;刚开始就紧跟着文档走&#xff09;2&#xff0c;App.vue中项目引入腾讯云&#xff0c;&#xff08;附上账号在其他地方登陆的监听&#xff09;3&#xff0c;登录前必需3.1&#xff0c;获取登录id3.2&#xff0c;生成userSig&…

K8s 内存泄漏处理方法

问题描述&#xff1a; 1. 安装go环境 2. 下载地址: https://golang.google.cn/dl/[rootk8s-master home]# rm -rf /usr/local/go && tar -C /usr/local/ -zxvf go1.17.3.linux-amd64.tar.gz3. 永久配置go 环境[rootk8s-master home]# vim /etc/profile export GOPATH…

win10、mac如何使用desktop中的docker

1、安装相应系统的docker&#xff0c;安装完什么都不需要修改。 2、需要安装mysql的话首先使用命令行 3、需要把mysql等其他软件端口映射出来使用的命令 4、搞定&#xff1b;点击关闭和启动 可以安装很多软件哦&#xff0c;非常方便两条命令搞定&#xff0c;mysql、redis、mogo…

建筑物防雷工程的设计与施工

本文会介绍建筑物防雷工程的设计与施工的基本原理、方法和要求&#xff0c;以及一些典型的案例分析。建筑物防雷工程是为了保护建筑物及其内部设备、人员和财产免受雷电危害而采取的一系列技术措施。建筑物防雷工程应遵循《建筑物防雷设计规范》GB 50057-2010和《建筑物防雷工程…

ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算

起因&#xff0c;imu解算出了加速度 角速度&#xff0c;但原始数据是没有单位的&#xff0c;只是在一个精度范围的值&#xff0c;要使用这些数据&#xff0c;就需要把这些没有单位的数据换算成带单位的数据&#xff0c;下面解说一下换算原理。 imu读取数据代码参考上期的博客&…

什么是操作系统中的kernel

什么是操作系统中的kernel 一&#xff0c;图解&#xff0c;kernel在操作系统中的结构位置 二&#xff0c;文字描述解释 系统启动后,Kernel会常驻内存,负责系统的基础功能, 如进程调度,硬件管理.普通程序就是用户态程序, 在Kernel中的程序叫做内核态程序. 普通程序如果想申请…

经典图像识别卷积神经网络总结记录

这篇博文主要是延续前文系列的总结记录&#xff0c;这里主要是总结汇总日常主流的图像识别模型相关知识内容。 下面对上述列出的卷积神经网络模型进行逐个详细介绍、算法原理分析以及优缺点总结&#xff1a; (1)LeNet-5 算法原理&#xff1a; LeNet-5是最早应用于手写数字识别…

(22)LED灯(外部)

文章目录 前言 22.1 带有I2C连接的RGB LEDs/显示器 22.2 串行连接的设备 22.3 NTF LED的含义 前言 外部 LED 或 LED 显示屏可以通过连接到自动驾驶仪的 I2C 端口&#xff0c;或者在 4.0 及以后的版本中&#xff0c;如果是串行编程的设备&#xff0c;可以通过输出使用 SERV…

【Redis】3、Redis 作为缓存(Redis中的穿透、雪崩、击穿、工具类)

目录 一、什么是缓存二、给业务添加缓存&#xff08;减少数据库访问次数&#xff09;三、给店铺类型查询业务添加缓存(1) 使用 String 类型(2) 使用 List 类型 四、缓存的更新策略(1) 主动更新(2) 最佳实现方案(3) 给查询商铺的缓存添加超时剔除和主动更新的策略① 存缓存&…

mysql 练习---表和表的字段的增删改

环境&#xff1a; 命令&#xff1a; (1)create database Market; (2) create table customers( c_num int(11) primary key auto_increment, c_name varchar(50), c_contact varchar(50), c_city varchar(50), c_birth datetime not null );(3) alter table customers mod…

[github-100天机器学习]day1 data preprocessing-版本问题已修正

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放 数据预处理 导入库&#xff1a;numpy包含数学计算函数&#xff0c;pandas用于导入和管理数据集 #!/usr/bin/env python3 # -*- coding: …

flutter 更新分支内容

有三个分支&#xff0c;主分支&#xff0c;A分支&#xff0c;B分支&#xff0c;别人在B分支开发了内容&#xff0c;我在A分支进行开发。别人在B分支提交了代码&#xff0c;让我去拉下来。这时候我就是需要切到B分支&#xff0c;拉代码下来&#xff0c;然后再回到A分支&#xff…

python使用代理ip——案例

python爬虫是指使用Python编写的程序&#xff0c;通过网络爬取信息并提取有效数据。它通过模拟浏览器请求&#xff0c;获取网页数据&#xff0c;并通过解析HTML/XML等文档结构&#xff0c;从中提取数据。 Python爬虫常用的库和工具包括&#xff1a; Requests&#xff1a;用于…

Lightroom Classic 2023(12.4) for Mac

Lightroom Classic是一款图像处理软件&#xff0c;是数字摄影后期制作的重要工具之一。与其他图像处理软件相比&#xff0c; Lightroom Classic具有以下特点&#xff1a; 高效的图像管理&#xff1a;Lightroom Classic提供了强大的图像管理功能&#xff0c;可以轻松导入、整理…

Springboot接口返回参数以及入参RSA加密解密

网上有好多通过aop切面以及自定义的RSA工具类进行加密解密的方法&#xff0c;期中的过程繁琐也不好用&#xff0c;博主研究了一天从网上到了超好用的基于Springboot框架实现的接口RSA加密解密方式&#xff0c;通过rsa-encrypt-body-spring-boot实现了对Spring Boot接口返回值、…

MySQL库表操作

目录 1、SQL语句分类 2、书写规范 &#xff08;二&#xff09;关键字不区分大小写 &#xff08;三&#xff09;字符串和日期时间常数要用单引号 &#xff08;四&#xff09;单词之间需要使用半角空格或者换行符进行分隔 &#xff08;五&#xff09;注释 3、库操作 创建…

关于PHP 使用 Elastic Search8的相关经历

你好&#xff01; 如果你也是第一次使用ES8和PHP对接使用&#xff0c;这里或许有一些心得可以为你解决一些问题。 本地环境所需工具 windows 版本搭建 Elastic Search 如下图&#xff0c;通过官网下载一个windows版本的Elastic Search 执行.bat文件即可启动 https://localhos…

基于OpenCV 和 Python 实现车牌检测--附免费源码

文末提供免费的源代码下载链接 车牌检测是使用计算机视觉技术自动检测和识别图像或视频流中的车牌/车牌的过程。 此任务在许多应用中都很有用,例如交通管理、自动收费和停车控制。 车牌检测基本上分为两个任务: 车牌检测:这是指识别图像或视频帧中车牌位置的过程。这涉…

优化篇--vxe-table 大数据表格替代方案

解决数据量过大及内容复杂时造成的Table渲染滚动的卡顿问题 vxe-table官方文档 npm install xe-utils vxe-tablelegacyvex-table.vue <template><div class"page"><vxe-gridclass"mytable"ref"xGrid2"v-bind"gridOptions2&…

langchain系列1- langchain-ChatGLM

源码阅读 1 服务启动 (demo.queue(concurrency_count3).launch(server_name0.0.0.0,server_port7860,show_apiFalse,shareFalse,inbrowserFalse))这部分代码使用了 Gradio 库提供的两个函数&#xff1a;queue 和 launch。 在这里&#xff0c;demo 是一个 Interface 类的实例…