Asp.net 做登录验证码(MVC)

ASP.NET MVC 登录验证码 图片验证码HTML页面: <div style="float: left; width: 65%"> <input class="ipt" id="verifycode" maxlength="4" type="text" placeho 阅读详情
  public class ValidateCode
  {
      /// <summary>
        /// 创建随机数
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public string CreateRandom(int num)
      {
          string str = "ABCDEFGHJKMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789";
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < num; i++)
          {
              sb.Append(str[new Random(Guid.NewGuid().GetHashCode()).Next(0, str.Length - 1)]);
          }
          return sb.ToString();
      }
      /// <summary>
        /// 验证码图片 => byte[]
        /// </summary>
        /// <param name="verifyCode">验证码</param>
        /// <param name="width">宽</param>
        /// <param name="height">高</param>
        /// <param name="fontsize">字体大小</param>
        /// <returns></returns>
        public byte[] CreateByteByImgVerifyCode(string verifyCode, int width, int height, int fontsize)
      {
          Font font = new Font("Arial", fontsize, (FontStyle.Bold | FontStyle.Italic));
          Brush brush;
          Bitmap bitmap = new Bitmap(width, height);
          Graphics g = Graphics.FromImage(bitmap);
          SizeF totalSizeF = g.MeasureString(verifyCode, font);
          SizeF curCharSizeF;
          PointF startPointF = new PointF(10, (height - totalSizeF.Height) / 2); //x=5开始
            int wx = ((width - 20) / verifyCode.Length); //间距
            Random random = new Random(); //随机数产生器
            g.Clear(Color.White); //清空图片背景色  
            for (int i = 0; i < verifyCode.Length; i++)
          {
              brush = new LinearGradientBrush(new Point(0, 0), new Point(1, 1), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)));
              g.DrawString(verifyCode[i].ToString(), font, brush, startPointF);
              curCharSizeF = g.MeasureString(verifyCode[i].ToString(), font);
              startPointF.X += wx;
          }

            //画图片的干扰线  
            for (int i = 0; i < 10; i++)
          {
              int x1 = random.Next(bitmap.Width);
              int x2 = random.Next(bitmap.Width);
              int y1 = random.Next(bitmap.Height);
              int y2 = random.Next(bitmap.Height);
              g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
          }

            //画图片的前景干扰点  
            for (int i = 0; i < 100; i++)
          {
              int x = random.Next(bitmap.Width);
              int y = random.Next(bitmap.Height);
              bitmap.SetPixel(x, y, Color.FromArgb(random.Next()));
          }

          g.DrawRectangle(new Pen(Color.Silver), 0, 0, bitmap.Width - 1, bitmap.Height - 1); //画图片的边框线  
            g.Dispose();

            //保存图片数据  
            MemoryStream stream = new MemoryStream();
          bitmap.Save(stream, ImageFormat.Jpeg);
            //输出图片流  
            return stream.ToArray();

      }
  }

然后做一个接口

 public ActionResult Captcha()
 {
     ValidateCode validateCode = new ValidateCode();
     string code = validateCode.CreateRandom(4);
     Session["code"] = code.ToLower();
     return File(validateCode.CreateByteByImgVerifyCode(code, 130, 48, 22), "image/jpg");
 }

然后前端调用:

  <div style="margin-left: 10px;">
      <img src="/@ViewContext.RouteData.DataTokens["area"]/login/Captcha" class="layadmin-user-login-codeimg" id="LAY-user-get-vercode">
  </div>

如果验证码不出来,可能是服务没有打开,需要打开这个服务

如果没有,请安装一下,这个自行找下

ASP.NET MVC+EasyUI验证码登录安全实现指南 验证码是Web应用中用于人机识别与基础防自动化攻击的关键安全组件,其本质是一种轻量级挑战-响应机制。它依赖服务端生成、存储与校验的闭环流程,并需兼顾OCR抗性、时效控制与状态同步。在ASP.NET MVC框架中,验证码需深度集成模型绑定、Action过滤器及Session/Token生命周期;在EasyUI等jQuery UI库中,则面临表单提交劫持、输入框状态不同步、事件冲突等前端适配难题。本文聚焦于MVC与EasyUI协同场景下的验证码工程化落地,涵盖密码学安全随机生成、图像干扰平衡策略、Token化校 阅读详情

相关推荐

ASP.NET MVC 验证登录方法

开发工具和关键技术:Visual Studio 2015,ASP.NET MVC 作者:金建勇 撰写时间:2019年4月20日 在做一个项目一个系统的时候,最基本的肯定是得有登录页面的,需要输入账号、密码还有验证码这些登录信息,也当只有输入这些信息正确的时候,才能登录成功。这个时候也就涉及到验证登录了,我们就需要在控制器写上一个方法,用来验证登录时输入的这些信息是否正确,然后在登录的时...

依然的博客 1768

ASP.NET MVC权限管理系实战之一验证码功能实现

ASP.NET MVC权限管理系实战之一验证码功能实现

xzhu博客 1285

超详细编写登录注册页面(内含验证码登录)

登录、注册、验证码的代码都有,并且详细讲解。

m0_57448314的博客 1万+

.NET Core Web API 实现图形验证码

本文介绍如何后端实现图形验证码,包括纯数字验证码、数字+字母验证码以及数字运算验证码。

liwan09的博客 4122

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2108

程序自动化填写网页表单数据

如何让程序自动化填写网页表单数据,特别是涉及到批量数据情况时,可以减少人力。下面是涉及到的一些场景,都可以通过相关自动化程序实现。

Y 2426

asp.net Mvc验证码

转载自:http://www.cnblogs.com/freeliver54/archive/2013/05/17/3083053.html   参考:http://blog.163.com/zhangv520@126/blog/static/1593697720115104549269/对内容作出少许更改 改编以下原来的GOOGLE验证码,由于是MVC,故返回类型是FileConte

u012245569的专栏 945

Allegro网表导入报错VOIDs not allowed in parent SHAPE的解决方案

在PCB设计流程中,网表导入是确保电气连接正确传递的关键步骤。其原理是将原理图的逻辑连接关系映射到物理版图的图形数据库中。这一过程的技术价值在于保证设计数据的一致性,避免后续生产中出现电气错误。然而,在Cadence Allegro等EDA工具的实际应用中,数据库内部状态的不一致可能引发操作失败,例如常见的“VOIDs are not allowed in the parent SHAPE”报错。这类问题通常源于多人协作、跨版本操作或频繁编辑后积累的数据结构冗余。针对此场景,核心的解决方法是执行Databa

weixin_30954817的博客 322

用.net实现网站验证码功能

<!-- alimama_pid="mm_10249644_1605763_4929893"; alimama_titlecolor="707070"; alimama_descolor ="CCCCCC"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="FFFFFF"; alimama_linkcolor="DADA

9391

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 275

MCAL中MCU的配置

MCAL配置中MCU配置,PLL计算配置,系统时钟以及各模块参数配置

dhyw12399999的博客 3794

.Net asp.net MVC 实现短信验证

c#关于如何实现手机号短信验证

weixin_54629917的博客 3051

一[3.3]、ubuntu18.04环境 利用 yolov8 实现列车轨道检测,并提取正确的轨道线【全网最详细】

【代码】一[3.3]、ubuntu18.04环境 利用 yolov8 实现列车轨道检测,并提取正确的轨道线【全网最详细】

努力努力努力 258

ASP.NET MVC实战:5分钟搞定QQ邮箱验证码登录(附完整代码)

本文提供了一份详尽的ASP.NET MVC实战指南,教你如何在5分钟内快速集成QQ邮箱验证码登录功能。文章从获取SMTP授权码开始,逐步讲解了邮件服务封装、控制器逻辑实现、前端交互设计以及部署优化方案,并附带了完整的代码示例,帮助开发者低成本、高效率地实现用户登录验证。

pz890123的博客 661

<PLC><汇川>汇川PLC基于EtherCat协议使用转矩模式控制SV630N伺服驱动电机

本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。

用沸腾的热血,支付我们的人生吧! 4159

基于Python的异步爬虫实战:高效抓取同花顺概念板块数据

本文将详细介绍如何使用Python最新异步爬虫技术(requests-html+aiohttp+selenium)高效抓取同花顺概念板块数据。内容涵盖:反爬机制破解、动态页面渲染处理、数据解析存储等完整流程,并提供可复用的高性能爬虫代码实现。高性能:异步并发处理,QPS可达50+高可用:完善的异常处理机制可扩展:支持分布式部署增加历史数据回溯功能集成机器学习识别验证码构建实时数据推送系统。

2201_76125261的博客 1535

php mvc登录验证码,ASP.NET MVC验证码功能实现代码

前台height="25" />style="cursor: pointer; text-decoration: underline">换一张控制器using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using Utility;usin...

weixin_32889145的博客 213

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ASP.NET MVC+Easyui 实现验证码登录

ASP.NET MVC+Easyui 实现验证码登录 效果预览: 点击验证码图片,验证码会及时改变。 1.创建实现验证码图片的工具类(ValidCodeUtils.cs) /// <summary> /// 验证码 /// </summary> public static class ValidCodeUtils { ///...

weixin_45721343的博客 1117

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ASP.NET MVC+Easyui验证码登录实现与安全加固

验证码是Web身份鉴别的基础安全机制,其核心在于服务端生成、状态绑定与客户端协同验证。原理上需依托Session或Token实现一次性校验,避免明文传输与重放攻击;技术价值体现在有效过滤Bot流量、满足等保二级合规要求,并降低暴力破解成功率。典型应用场景包括政企后台系统、高校管理系统等基于Windows Server/IIS的传统Web表单登录流程。本文聚焦ASP.NET MVC框架下的验证码模块落地,结合Easyui前端集成实践,详解Base64图片生成、GUID会话锚定、AJAX实时校验及Chrome

weixin_30402231的博客 275

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ASP.NET MVC+EasyUI验证码登录实战:生成、校验与安全加固

验证码是Web身份验证的基础安全机制,其本质是服务端生成的挑战-响应式人机识别凭证。原理上依赖会话绑定、图像干扰与实时校验三重保障,技术价值在于低成本阻断自动化攻击、平衡安全性与可用性。典型应用场景包括后台管理系统、政务平台及高校实验环境中的登录模块。在ASP.NET MVC框架下,需结合Session管理、HTTP缓存控制(ETag)与EasyUI的validatebox远程校验能力,实现高兼容、低耦合、可维护的落地方案。本文聚焦MVC控制器图片流输出、EasyUI表单双向绑定及防暴力/防重放等生产级加固

weixin_31364787的博客 575

ASP.NET MVC5入门之简单的登录验证方式

开发环境: IDE:VS2013 架构:ASP.NET MVC5 语言:C# 1. 效果图 2.项目结构 解决方案包含两个工程文件: MvcLogin:默认创建的工程,是MVC架构的主体。该工程主要包含LoginController、Login/Index、LocalStyle文件夹,分别对应控制器、视图和应用于该工程的样式和js。 MvcLogin.Methods:方法...

绝圣弃智-零的博客 3616

页面登录验证码生成

publicActionResult Login() { #region读取cookie中的数据 登录页面数据回填 stringUserNuber = ""; stringPassword = ""; stringUserTypeClass = ""; boolisRember = false; //读取浏览器请求传递的co...

weixin_55966881的博客 166

ASP.NET.MVC登录页面

ASP.NET.MVC登录页面 开发工具与关键技术:Visual Studio 2015 作者:昨夜星辰 撰写时间:2019年05月09日 一、我们学习MVC的时候做的第一步就是登陆,登陆是做项目必不可缺的一个重要的一个流程,登陆首先要获取到用户的账号和一些基本的内容,还有就是验证码,验证码的作用就是防止一些机器自动化的登陆。...

weixin_44538151的博客 9072

ASP.NET MVC实现网站验证码功能

转:http://www.cnblogs.com/liuxiaoji/p/4920382.html 网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录、灌水等危害网站的操作。验证码被广泛应用在注册、登录、留言等提交信息到服务器端处理的页面中。 在ASP.NET网站中应用验证码是很容易的,网上有很多的解决方案。最近在做一个OA项目,因系...

weixin_30561425的博客 98

.net mvc4连接oracle,三、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录...

3、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录最近由于项目赶着上线,一直没时间接着写博客,今天终于空出了时间。声名:我不是专业美工,所以界面问题,希望大家不要拍砖。登录界面如下:在ASP.NET MVC中,要新增一个功能,我们首先要添加一个控制器,AccountController.cs,添加方法:右键单击Controllers文件...

weixin_31845243的博客 205
上一篇: uniapp 如何使用vuex store (亲测)
下一篇: uniapp 自定义的滑杆(支持一个屏幕2个滑杆同时滑动)
Little_Code
博客等级 码龄10年 62粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值