欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET生成验证码的方法

程序员文章站 2022-03-08 13:53:21
本文实例为大家分享了asp.net生成验证码的具体代码,供大家参考,具体内容如下首先,添加一个一般处理程序注释很详细了,有不懂的欢迎评论using system;using system.collec...

本文实例为大家分享了asp.net生成验证码的具体代码,供大家参考,具体内容如下

首先,添加一个一般处理程序

ASP.NET生成验证码的方法

注释很详细了,有不懂的欢迎评论

using system;
using system.collections.generic;
using system.drawing;
using system.linq;
using system.web;
using system.web.sessionstate;

namespace project_practice
{
 /// <summary>
 /// handler1 的摘要说明
 /// </summary>
 public class handler1 : ihttphandler,irequiressessionstate
 {

 public void processrequest(httpcontext context)
 {
  //选取的颜色
  color[] colors = { color.white };
  //通过bitmap构造image
  image img = new bitmap(100, 60);
  //graphics绘画image
  graphics graphics = graphics.fromimage(img);

  random random = new random(datetime.now.millisecond);
  //验证码的四位数
  int charnum1 = random.next('0', '9' + 1);
  int charnum2 = random.next('0', '9' + 1);
  int charnum3 = random.next('0', '9' + 1);
  int charnum4 = random.next('0', '9' + 1);
  //把生成的随机数变成字符串,通过char进行转换
  string validcode = string.format($"{(char)charnum1}{(char)charnum2}{(char)charnum3}{(char)charnum4}");
  //放进session进行存储,记得继承接口,否则疯狂报空指针
  context.session["verification_code"] = validcode;
  //字体的大小和类别
  font font = new font("宋体", 24);
  //随机的颜色
  brush brush1 = new solidbrush(colors[random.next(0, colors.length - 1)]);
  //drawstring的四个参数,第一个是要写的字符,第二个是字体,第三个是颜色,第四个是坐标x,y
  graphics.drawstring(((char)charnum1).tostring(), font, brush1, 7, -3);
  brush brush2 = new solidbrush(colors[random.next(0, colors.length - 1)]);
  graphics.drawstring(((char)charnum2).tostring(), font, brush2, 26, -9);
  brush brush3 = new solidbrush(colors[random.next(0, colors.length - 1)]);
  graphics.drawstring(((char)charnum3).tostring(), font, brush3, 50, 0);
  brush brush4 = new solidbrush(colors[random.next(0, colors.length - 1)]);
  graphics.drawstring(((char)charnum4).tostring(), font, brush4, 70, -7);
  //保存,格式
  context.response.contenttype = "image/jpeg";
  img.save(context.response.outputstream, system.drawing.imaging.imageformat.jpeg);
  //释放资源
  graphics.dispose();
  img.dispose();
 }

 public bool isreusable
 {
  get
  {
  return false;
  }
 }
 }
}

一个web窗体

<%@ page language="c#" autoeventwireup="true" codebehind="verification_code.aspx.cs" inherits="project_practice.verification_code" %>

<!doctype html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
  <asp:image id="image1" runat="server" imageurl="~/handler1.ashx" />
 </div>
 </form>
</body>
</html>

效果图

ASP.NET生成验证码的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: ASP.NET 验证码