本文实例为大家分享了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,验证码

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“ASP.NET生成验证码的方法”

暂无“ASP.NET生成验证码的方法”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。