ASP.NET生成验证码的方法

 更新时间:2020年05月27日 16:29:14   作者:南 墙  
这篇文章主要为大家详细介绍了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>

效果图

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

相关文章

  • .net mvc超过了最大请求长度的解决方法

    .net mvc超过了最大请求长度的解决方法

    这篇文章主要为大家详细介绍了.net mvc超过了最大请求长度的解决方法,限制文件上传大小,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • linq中的串联操作符

    linq中的串联操作符

    这篇文章介绍了linq中的串联操作符,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • ASP.NET Core依赖注入系列教程之服务的注册与提供

    ASP.NET Core依赖注入系列教程之服务的注册与提供

    这篇文章主要给大家介绍了关于ASP.NET Core依赖注入系列教程之服务的注册与提供的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-11-11
  • Asp.Net Core基于JWT认证的数据接口网关实例代码

    Asp.Net Core基于JWT认证的数据接口网关实例代码

    这篇文章主要给大家介绍了关于Asp.Net Core基于JWT认证的数据接口网关的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者使用Asp.net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

    ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

    这篇文章主要介绍了ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法,很实用的技巧,需要的朋友可以参考下
    2014-07-07
  • asp.net实现根据城市获取天气预报的方法

    asp.net实现根据城市获取天气预报的方法

    这篇文章主要介绍了asp.net实现根据城市获取天气预报的方法,涉及asp.net调用新浪接口获取天气预报信息的实现技巧,非常简单实用,需要的朋友可以参考下
    2015-12-12
  • .Net Core学习教程之在Mvc中简单的使用日志组件

    .Net Core学习教程之在Mvc中简单的使用日志组件

    这篇文章主要给大家介绍了关于.Net Core学习教程之在Mvc中简单使用日志组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • VS2015开发环境的安装和配置

    VS2015开发环境的安装和配置

    本文主要是给大家把C#开发环境各种版本的更新和安装过程重新整理一下贡献出来,希望对小伙伴们能够有所帮助
    2016-07-07
  • VS2015使用scanf报错的解决方法

    VS2015使用scanf报错的解决方法

    这篇文章主要为大家详细介绍了VS2015使用scanf报错的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • AntDesign Pro + .NET Core 实现基于JWT的登录认证功能

    AntDesign Pro + .NET Core 实现基于JWT的登录认证功能

    这篇文章主要介绍了AntDesign Pro + .NET Core 实现基于JWT的登录认证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论