html5验证码图片刷新,在mvc中实现图片验证码的刷新

2023-05-16

public classValidationCodeHelper

{//用户存取验证码字符串

public string validationCode =String.Empty;

Random ram= newRandom();

Graphics g= null;int bgWidth = 0;int bgHeight = 0;public string FontFace = "Consolas";public int FontSize = 16;public Color foreColor = Color.FromArgb(190, 190, 190);public Color backColor = Color.FromArgb(0, 120, 120);public Color mixedLineColor = Color.FromArgb(220, 220, 220);public int mixedLineWidth = 1;public int mixedLineCount = 3;#region 根据指定长度,返回随机验证码

///

///根据指定长度,返回随机验证码///

/// 制定长度

/// 随即验证码

public string Next(intlength)

{this.validationCode =GetRandomCode(length);return this.validationCode;

}#endregion

#region 根据指定长度及背景图片样式,返回带有随机验证码的图片对象

///

///根据指定长度及背景图片样式,返回带有随机验证码的图片对象///

/// 指定长度

/// 背景图片样式

/// Image对象

public Image NextImage(int length, bool allowMixedLines,out stringcode)

{this.validationCode =GetRandomCode(length);

code= this.validationCode;//System.Web.HttpContext.Current.Session["Code"] = validationCode;//校验码字体

Font myFont = newFont(FontFace, FontSize);//根据校验码字体大小算出背景大小

bgWidth = (int)myFont.Size * length + 4;

bgHeight= (int)myFont.Size * 2;//生成背景图片

Bitmap myBitmap = newBitmap(bgWidth, bgHeight);

g=Graphics.FromImage(myBitmap);this.DrawBackground();this.DrawValidationCode(this.validationCode, myFont);if(allowMixedLines)this.DrawMixedLine();return(Image)myBitmap;

}#endregion

#region 内部方法:绘制验证码背景

private voidDrawBackground( )

{//设置填充背景时用的笔刷

HatchBrush hBrush = newHatchBrush(HatchStyle.Wave, backColor);//填充背景图片

g.FillRectangle(hBrush, 0, 0, this.bgWidth, this.bgHeight);

}#endregion

#region 内部方法:绘制验证码

private void DrawValidationCode(stringvCode, Font font)

{

g.DrawString(vCode, font,new SolidBrush(this.foreColor), 2, 2);

}#endregion

#region 内部方法:绘制干扰线条

///

///绘制干扰线条///

private voidDrawMixedLine()

{for (int i = 0; i < mixedLineCount; i++)

{

g.DrawBezier(new Pen(newSolidBrush(mixedLineColor),mixedLineWidth),

RandomPoint(),

RandomPoint(),

RandomPoint(),

RandomPoint()

);

}

}#endregion

#region 内部方法:返回指定长度的随机验证码字符串

///

///根据指定大小返回随机验证码///

/// 字符串长度

/// 随机字符串

private string GetRandomCode(intlength)

{

StringBuilder sb= new StringBuilder(6);for (int i = 0; i < length; i++)

{

sb.Append(Char.ConvertFromUtf32(RandomAZ09()));

}returnsb.ToString();

}#endregion

#region 内部方法:产生随机数和随机点

///

///产生0-9A-Z的随机字符代码///

/// 字符代码

private intRandomAZ09()

{//Thread.Sleep(15);

int result = 48;int i = ram.Next(2);switch(i)

{case 0:

result= ram.Next(48, 58);break;case 1:

result= ram.Next(65, 91);break;

}returnresult;

}///

///返回一个随机点,该随机点范围在验证码背景大小范围内///

/// Point对象

privatePoint RandomPoint()

{//Thread.Sleep(15);

Point point= new Point(ram.Next(this.bgWidth), ram.Next(this.bgHeight));returnpoint;

}#endregion}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

html5验证码图片刷新,在mvc中实现图片验证码的刷新 的相关文章

  • 【HTML】用户名、身份证号、邮箱、验证

    为了使页面不是那么突兀 特地导入了这俩个bootstrap框架相关的包
  • css改变svg颜色_如何使用CSS混合模式和SVG动态更改产品图像的颜色

    css改变svg颜色 To better explain that title right off the bat here s what we re about to learn and it s easier than you thin
  • 移动端页面禁止放大缩小

    安卓 在index html文件中添加meta标签 IOS 在 src app vue 中 script 标签内添加代码
  • EduCoder_web实训作业--JavaScript学习手册七:JS循环语句

    第一关 Begin var sum 0 var i 2 while i lt a var j 2 while j lt i if i j 0 能被整除 不是质数 break 不需要再判断 j 除数加1 继续测试是不是质数 if j i 还是
  • 前端学习——JavaScript原生实现购物车案例

    一 购物车案例 1 1 案例介绍 今天我们来写另外一个购物车案例 说实话对于我来说这个是花了将近三个小时的时间然后才做出来的 里面可能还存在一些我没有发现的问题 但是能完成基本的功能 对于一些基本的需求都是可以完成的 下面照旧是案例实现的g
  • 基于SpringBoot的图书管理系统

    基于SpringBoot的图书管理系统 里面整合了比较全的内容 可以说是麻雀虽小五脏俱全 如果看懂了所有的内容可以说是已经非常精通SpringBoot了 一 引言 由于近期看了SpringBoot 一站式开发特别方便 情不自禁用Spring
  • 前端基础之ES6

    1 前后端对比 2 ES6 ECMAScript6 0 以下简称ES6 ECMAScript是一种由Ecma国际通过ECMA 262标准化的脚本 是JavaScript语言的下一代标准 2015年6月正式发布 从ES6开始的版本号采用年号
  • 【QT学习】实现MVC框架的简易封装(一文读懂)

    文章目录 前言 一 MVC框架简介 1 核心部件 2 使用目的 3 MVC优点 二 具体封装步骤 1 文件管理 2 创建模型 3 创建控制器 4 MVC实现 用户登录验证为例 总结 前言 MVC Model View Controller
  • jquery attr()方法 添加,修改,获取对象的属性值

    转自 http hi baidu com 0701u item b8ec62c1daba973eef466524 jquery中用attr 方法来获取和设置元素属性 attr是attribute 属性 的缩写 在jQuery DOM操作中会
  • .NET Core 下定时任务调度

    一 增加本地json持久化调度任务 无需数据库 1 首先 我们创建一个空白的ASP NET Core 项目 MVC Razor和WebAPI都行 如图 2 通过nuget引用最新版本的GZY Quartz MUI组件 如图 组件的项目地址G
  • WEB交互界面易用性设计和验收的指导性原则

    随着企业intranet和国际internet的迅速发展 越来越多的工作流程 商务交易 教育 培训 会议和讲座 以及个人消费娱乐都被转移到所谓的万维网 World Wide Web 以下简称WEB 上来了 与此相对应的是交互操作的复杂性越来
  • 小白入门C#初探Web简易页面显示信息小案例

    1 创建新项目 选择ASP NET Core Web应用 模型 视图 控制器 然后点击下一步 然后在项目名称里面填写CSharpDemo 点击下一步 直至创建即可 目录结构 Connected Services 是Visual Studio
  • 【H5】 svg画扇形饼图

    H5 svg画扇形饼图 效果图如下 封装代码如下 代码内有详细注解哦
  • elementui 禁止浏览器自动填充用户名密码

    浏览器这功能在登录的时候挺好用的 但是在注册和管理的时候就很难受了 所以 在普通的input上直接off就行了
  • 基本的Java的MVC入门案例

    概念 MVC Model View Controller 模型 视图 控制器 他是一种专门设计web程序的模式 高内聚 低耦合 高内聚 专人干专事 低耦合 让类与类之间的关系不能太紧密 模型 Model 是应用程序中与处理应用程序数据逻辑的
  • align-content 设置多行下的子元素排列方式 代码和图片展示

    align content 适用于 换行 多行 的情况下 单行无效 可以设置上对齐 居中拉伸和平均分配剩余空间等属性值 属性值 flex start 默认值 在侧轴头部开始排列 flex end 在侧轴尾部开始排列 center 在侧轴中间
  • C#、js如何实现文件上传功能

    上传文件 今天我来讲讲在MVC中如何进行文件的上传 我们逐步深入 一起来看看 我们在默认创建的项目中的控制器下添加如下 第一步创建一个接受文件的实体 创建好后判断一下接受文件的是什么文件类型如txt 然后就是文件名称建好后检查目录文件是否存
  • 测试基础知识

    常见测试分类 按测试阶段划分 单元测试 针对程序源码进行测试 国内是开发自测 集成测试 又称接口测试 针对模块间的访问地址进行测试 系统测试 对整个系统进行测试 包括功能 兼容性 文档等 验收测试 分为内测和公测 按代码可见度划分 黑盒测试
  • 【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

    使用Swagger你只需要按照它的规范去定义接口及接口相关的信息 就可以做到生成接口文档 以及在线接口调试页面 官网 https swagger io Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案
  • 使用企业订货软件的担忧与考虑|网上APP订货系统

    使用企业订货软件的担忧与考虑 网上APP订货系统 网上订货系统担心出现的问题 1 如果在订货系统中定错 多 货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误 但是网上订货平台为大家提供了很多的解决方案 其中对于订单的修改

随机推荐