ShenNiusModularity项目源码学习(2:登录页面验证码)

news2024/11/25 18:52:43

  前端登录页面Login.cshtml位于ShenNius.Admin.Mvc项目的Areas\Sys\Views\User内,页面中使用的验证码是调用同项目内UserController的OnGetVCode函数获取验证码图片。
在这里插入图片描述
  点击验证码图片,会调用wwwroot\js\login.js定义的changeSrcCode函数刷新验证码。这里避免使用浏览器缓存的技巧是在调用函数后累加数字(之前学习的开源博客项目中是在调用函数后增加随机数)。

  验证码生成类VerifyCode位于同项目内ShenNius.Mvc.Admin.Common命名空间下,支持创建验证码及相应图片。
  验证码生成函数CreateRandomCode的逻辑比较简单,取新建Guid的前几位作为验证码。项目中固定取4位验证码。
在这里插入图片描述
  验证码图片创建函数DrawImage采用GDI+创建图片。防机器识别的方式是增加背景噪点及旋转验证码文字。
在这里插入图片描述
  背景噪点的生成思路是在图片区域随机位置绘制50个1X1的灰色矩形。旋转验证码文字的思路是从左到右逐个绘制验证码文字,对每个字符,采用随机字体、旋转角度、字体颜色绘制字符。
  最终将图片以Gif形式保存并传递至登录页面。并在OnGetVCode函数中将验证码文本保存到Session中以备后用。

在这里插入图片描述

参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity

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

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

相关文章

Qt调用外部exe并嵌入到Qt界面中(验证成功的成功)

http://t.csdnimg.cn/CDsqQ 原作者在这里 本文章主要介绍如何用Qt调用其他应用的exe,并将窗口嵌入到Qt界面中。很多人查到的代码都能成功的将exe调用起来,但是嵌入不到窗口中。主要有两种原因,现在从头到尾的梳理一下。 1.主要代码 1.1启动exe //包含…

keil编译输出的信息program size含义,以及个人使用中的编译内存溢出问题

keil编译后输出的信息含义 data对应的是片内的RAM,xdata对应的是程序中片外扩展的存储器上需要占用的容量,code是编写的程序占用单片机片内的存储程序ROM上的容量。 编译中发现错误 上图中的data值占用了147字节,超过了128字节。 一般解决…

2700+存储过程的超复杂Oracle,国产化怎么办?

前不久部门同事参与了一个关键客户的国产数据库Poc工作。从群里反馈的一些信息来看,难度还是比较大。 我们知道,对于数据库国产改造,其实有几个比较大的难点,其中最让人头疼的无非就是存储过程之类的对象了。 从同时提供的迁移报告…

掌握MySQL就差这一个——超详细讲解Mysql集群技术(包含主从复制,半同步模式,组复制,MHA)

一 Mysql 在服务器中的部署方法 在企业中 90% 的服务器操作系统均为 Linux 在企业中对于 Mysql 的安装通常用源码编译的方式来进行 官网: http://www.mysql.com 1.1 在Linux下部署mysql 1 安装依赖性: [rootmysql_node1 ~]# yum install cmake gcc-c…

django(二):第一个项目

接上文,django(一):项目搭建开始开发第一个项目。 1. 新建app 创建一个app应用,取名为company。 python manage.py startapp company注册app到settings.py文件中。 2.实现Model层 settings.py文件中配置数据库&am…

软件测试学习笔记丨静态测试与代码审计 SonarQube

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32049 一,SonarQube 平台搭建 1.1, 介绍 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具、代码分析工具&#xff…

FATE Board 执行流程探索

背景介绍 FATE Board 是 FATE 提供的一个工程,用于给 FATE 提供可视化能力,方便在联邦学习训练中实时查看执行状态,更好地定位执行中遇到的问题。 查看 FATE 架构可以看到 FATE Board 是建立在 MySQL 和 FATE Flow Server 的基础上的&#…

Unity(2022.3.41LTS) - 着色器

目录 一、着色器的基本概念 二、表面着色器 一、着色器的基本概念 定义与作用: 着色器是一种在图形硬件上运行的程序,用于控制物体的颜色、纹理、光照、透明度等视觉属性。它通过对输入的几何数据(如顶点位置、法线、纹理坐标等&#xff09…

某地级市攻防演练突破边界实战

0x1前言 今年某地级市的攻防中,前期通过fofa、google语法、天眼查等待信息收集获取到了某集团的单位后台后台是这样的,当看到这个后台系统时候脸上 不直接也就微笑了起来。最近风声紧,所有厚码希望大家多多理解(我也怕死啊呜呜呜…

【MRI基础】k空间基本属性

K 空间本质上是一个矩阵,用于存储从 MRI 扫描仪获得的原始数据。这些数据是在扫描过程中收集的,K 空间中的每个点代表被扫描身体发出的 MRI 信号的不同频率和相位。存储在 K 空间中的数据不是图像形式,而是包含重建图像所需的所有空间频率信息…

灵办 AI:免费智能利器,开启高效办公与智能创作学习新时代

目录 引言一、初识灵办AI—开启智能办公二、灵办 AI 的强大功能解析1. 多语言翻译2. AI 对话功能3. AI 阅读功能4. AI 代码助手功能 三、灵办 AI 的其他优点四、结语 引言 在当今快节奏的时代,技术人员们都在努力寻觅能够提高工作效率、助力学习创作的工具。我同样…

YOLO | YOLO目标检测算法(YOLO-V1)

github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 YOLO目标检测算法 YOLO V1概述(2016) YOLO V1概述(2016) 经典的One-stage方法 YOLO:You Only Look Once 把…

4.sklearn-K近邻算法、模型选择与调优

文章目录 环境配置(必看)头文件引用1.sklearn转换器和估计器1.1 转换器 - 特征工程的父类1.2 估计器(sklearn机器学习算法的实现) 2.K-近邻算法2.1 简介:2.2 K-近邻算法API2.3 K-近邻算法代码2.4 运行结果2.5 K-近邻算法优缺点 3.模型选择与调…

uni-app插槽(默认插槽,命名插槽,作用域插槽)

目录 什么是插槽? 基本概念 默认插槽 命名插槽 作用域插槽 场景一:子插槽向父组件传递一个字符串 场景二:子插槽向父组件传递对象 什么是插槽? 在 UniApp 中,插槽(Slot)是一种允许父组件向子组件特定位置插入HTML内容的方式。这种方式使得组…

ROS 2 Jazzy和QT组合开发教程

ROS2 Jazzy和QT组合开发教程 ROS2 和 Qt 组合开发是一个强大且灵活的组合,可以用来构建具有 GUI 的机器人应用程序。这个组合让你能够将 Qt 的图形界面与 ROS 2 的分布式通信功能结合在一起,实现数据的展示、机器人控制、调试等功能。 环境如下&#x…

掌握人事管理,这张报表帮你轻松搞定

在人事管理中,数据分析的重要性不言而喻。无论是了解员工的整体情况,还是洞察人才流失的原因,数据都能为我们提供有力的支持。但是,面对海量的数据,很多HR都会感到不知所措。那么,如何通过一张报表解决所有…

数字化转型升级探索(三)

在数字化转型升级的探索过程中,我们将通过深入应用人工智能、物联网、大数据和云计算等技术,全面重塑业务流程和运营模式,推动信息流、业务流和价值流的高度融合,实现从传统手工操作到智能自动化的全方位升级,提升业务…

【Python报错已解决】`SyntaxError`:`invalid syntax`

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在Python编程中,SyntaxError是最常见的错误类型之一,它表示代码中存在语法错误。本文将探讨一个具…

★ 算法OJ题 ★ 力扣202 - 快乐数

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将和大家一起做一道双指针算法题--快乐数~ 目录 一 题目 二 算法解析 三 编写算法 一 题目 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 二 算法解析 题⽬告诉我们&#xff0c;当我们不断重复操作…

数字化转型升级探索(四)

在数字化转型升级的探索中&#xff0c;我们将致力于通过整合先进的技术手段&#xff0c;如人工智能、区块链、大数据和云计算&#xff0c;全面改造传统业务模式&#xff0c;实现智能化运营和数据驱动决策&#xff0c;从而提高企业的效率与灵活性&#xff1b;通过实施全新的数字…