一.说明

此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,谢谢大家.

二.生成验证码图片(checkcode.aspx.cs)

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MyMusci
{public partial class checkcode : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){string chkCode = string.Empty;int ix, iy;ix = 80;iy = 24;//颜色列表,用于验证码、噪线、噪点  Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };//字体列表,用于验证码  string[] font = { "Times New Roman", "MS Mincho", "Book Antiqua", "Gungsuh", "MingLiU", "Arial" };//验证码的字符集,去掉了一些容易混淆的字符  char[] character = { '2', '3', '4', '5', '6', '8', '9','0','1','一','小','白' };Random rnd = new Random();//生成验证码字符串  for (int i = 0; i < 4; i++){chkCode += character[rnd.Next(character.Length)];}Bitmap bmp = new Bitmap(ix, iy);Graphics g = Graphics.FromImage(bmp);g.Clear(Color.White);//画噪线  for (int i = 0; i < 10; i++){int x1 = rnd.Next(ix);int y1 = rnd.Next(iy);int x2 = rnd.Next(ix);int y2 = rnd.Next(iy);Color clr = color[rnd.Next(color.Length)];g.DrawLine(new Pen(clr), x1, y1, x2, y2);}//画验证码字符串  for (int i = 0; i < chkCode.Length; i++){string fnt = font[rnd.Next(font.Length)];Font ft = new Font(fnt, 14, FontStyle.Bold);Color clr = color[rnd.Next(color.Length)];g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 16 + 2, (float)2);}//画噪点  for (int i = 0; i < 50; i++){int x = rnd.Next(bmp.Width);int y = rnd.Next(bmp.Height);Color clr = color[rnd.Next(color.Length)];bmp.SetPixel(x, y, clr);}//将验证码写入SESSION,为什么第二个页面没法获取值???//一般处理程序增加接口文件;Session["Code"] = chkCode.ToUpper();//清除该页输出缓存,设置该页无缓存  Response.Buffer = true;Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);Response.Expires = 0;Response.CacheControl = "no-cache";Response.AppendHeader("Pragma", "No-Cache");//将验证码图片写入内存流,并将其以 "image/Png" 格式输出  //我这个页面返回的是图片;MemoryStream ms = new MemoryStream();try{bmp.Save(ms, ImageFormat.Png);Response.ClearContent();Response.ContentType = "image/Png";Response.BinaryWrite(ms.ToArray());}finally{//显式释放资源  bmp.Dispose();g.Dispose();}}}
}

三.登录页面添加验证码(login_new.aspx)

在table中添加如下代码

<tr><td>验证码</td><td><asp:TextBox ID="code" runat="server"></asp:TextBox></td><td><img id="imgcode" src="checkcode.aspx" /></td>
</tr>
<tr><td><asp:Button ID="btn_sub" runat="server" class="btn btn-primary" OnClick="btn_sub_Click" Text="登录" /></td><td><%--此处将重置按钮替换为注册(LinkButton)控件PostBackUrl 表示控件点击后跳转的位置CausesValidation="False" 表示不用通过验证控件便可以跳转位置--%><asp:LinkButton ID="LinkButton1" runat="server" class="btn btn-secondary"  PostBackUrl="~/RegUser.aspx" CausesValidation="False">注册</asp:LinkButton></td><td>&nbsp;</td>
</tr>

加入jquery.js,并添加如下脚本:

<script>//图片点击事件$("#imgcode").click(function () {$("#imgcode").attr("src", "checkcode.aspx?t=" + Math.random());})
</script>

当我们每次点击图片时,会刷新图片的内容,也就时验证码的内容:

ASP.net 生成验证码相关推荐

  1. ASP.NET生成验证码

    Code /************************************************************************/ /* 类名:无 * 功能:生成验证码图片 ...

  2. java aspx 验证码,asp 动态生成验证码

    Const nMaxSaturation = 100   ' 最大色彩饱和度 Const nBlankNoisyDotOdds = 0.2  ' 空白处噪点率 Const nColorNoisyDot ...

  3. 【转】asp.net mvc生成验证码

    ASP.NET MVC实现网站验证码功能 网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录. ...

  4. ASP.NET Core 生成验证码

    点击蓝字 关注我 使用验证码保护网站免受垃圾信息的选择有很多,比如Google ReCaptcha和captcha.com.这两者都可以整合到ASP.NET Core应用中去.然而,如果你出于某些原因 ...

  5. ASP.NET 实现登录界面(生成验证码)

    这周末也没干啥,真正开始ASP,做了个学籍管理系统的登录界面,登录界面主要包括用户名.密码.验证码,界面字体用了<font size="5" color="blue ...

  6. [转]asp.net(c#)生成验证码 点击可刷新

    先建一张生成验证码的网页CheckCode.aspx: CheckCode.aspx.cs代码如下 添加引用: using System.IO; using System.Drawing; using ...

  7. 完整asp.net图形验证码程序

    1.测试页面:Default.aspx <%@ Page Language="C#" AutoEventWireup="true"  CodeFile=& ...

  8. C# 生成验证码 方法一

    注意命名空间的引用 在项目中新建Validcode.aspx <%@ Page Language="C#" AutoEventWireup="true" ...

  9. Asp.net 实现验证码功能的Web控件

          Asp.net的设计方式和设计理念和其他的如Asp,Jsp,Php,Perl 等都不一样,几乎是完全的面向对象设计!代码的复用就是其 中差异较大的特点之一,Asp.net除了可以用Incl ...

最新文章

  1. R语言-RStudio打开中文注释的脚本后出现乱码
  2. 合集 | 我在传统行业做数字化转型
  3. 物联网和互联网的区别
  4. java正则表达式 分词_[Java]使用正则表达式实现分词
  5. 假如买彩票中了100万怎样安全地把钱领回来?
  6. 小升初数学计算机考试题,重点中学小升初数学分班考试模拟试卷试题及解析总结计划-20210513100212.docx-原创力文档...
  7. python笔试题 github_在GitHub上收获6519颗星星的Python面试题资源,到底有多牛?
  8. 音乐和计算机跨界融合,音乐类综艺跨界融合有了新思路
  9. seo外链工具是什么?外链工具有用吗?
  10. 密码编码学与网络安全(第五版)答案
  11. Windows下Pycharm专业版2021.2以及Anaconda安装教程
  12. Cartopy绘图入门指南
  13. 怎样使用 Hardhat 开发 Solidity 智能合约
  14. c++判断整数翻转溢出_C++整数溢出
  15. 非诚勿扰:比舒淇更孤单的是谁?
  16. 产品经理–是否具有战略意义?
  17. Golang线程池gpool
  18. VR眼镜连接android设备,如何将VR眼镜的屏幕投影到计算机或电视上?
  19. Egret:一个简单的打砖块游戏
  20. C语言笔记 · 输入函数(scanf(),getchar(),getche(),getch(),gets())

热门文章

  1. AOP面向切面编程简单使用
  2. 新手小白做短视频自媒体,不知道如何开始?教你如何快速起步
  3. xp系统怎么添加wifi连接服务器,xp如何连接隐藏wifi xp怎么连接隐藏的wifi?-192路由网...
  4. tmall.item.hscode.audit.results.query( 商品hscode信息审核状态查询接口 )
  5. 基于平衡计分卡框架设计DevOps战略
  6. Word小技巧-快速取消自动编号
  7. wps怎么取消自动编号?四种方法任你选择
  8. 深入理解python装饰器
  9. word2016,分成两栏后文字顺序混乱的问题
  10. 说服我男朋友辞职的第365天