asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字)

以下是"asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字)"的完整攻略:

一、数字验证码示例

数字验证码常用于防止恶意注册或恶意登录操作。可以通过以下代码实现数字验证码的生成:

public ActionResult VerifyCode()
{
    int codeLength = 4;//验证码长度
    string code = "";
    for (int i = 0; i < codeLength; i++)//生成随机数
    {
        code += new Random(Guid.NewGuid().GetHashCode()).Next(0, 9).ToString();
    }
    Session["Code"] = code;//将验证码保存到Session中,方便后续的验证
    MemoryStream ms = new MemoryStream();
    Bitmap img = new Bitmap(80, 30);
    Graphics g = Graphics.FromImage(img);
    g.Clear(Color.White);
    g.DrawString(code, new Font("宋体", 14), new SolidBrush(Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255))), new RectangleF(0, 0, 80, 30));//将随机数画入图片中
    img.Save(ms, ImageFormat.Jpeg);//将图片保存到内存流中
    Response.BinaryWrite(ms.ToArray());//输出验证码图片
    return null;
}

二、数字字母混合验证码示例

数字字母混合验证码常用于加强安全性。可以通过以下代码实现数字字母混合验证码的生成:

public ActionResult VerifyCodeMixed()
{
    int codeLength = 4;//验证码长度
    string code = "";
    for (int i = 0; i < codeLength; i++)//生成随机数
    {
        int rand = new Random(Guid.NewGuid().GetHashCode()).Next(0, 36);//生成一个随机数,在0到35之间,分别对应数字和大小写字母
        if (rand < 10)
        {
            code += rand.ToString();//如果生成的随机数在0到9之间,就直接保存
        }
        else if (rand < 36)
        {
            code += Convert.ToChar(rand - 10 + 'a').ToString();//如果生成的随机数在10到25之间,将其转换成小写字母并保存
        }
    }
    Session["CodeMixed"] = code;//将验证码保存到Session中,方便后续的验证
    MemoryStream ms = new MemoryStream();
    Bitmap img = new Bitmap(80, 30);
    Graphics g = Graphics.FromImage(img);
    g.Clear(Color.White);
    for (int i = 0; i < codeLength; i++)//将随机数画入图片中
    {
        g.DrawString(code[i].ToString(), new Font("宋体", 14), new SolidBrush(Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255))), new RectangleF(i * 20, 0, 20, 30));
    }
    img.Save(ms, ImageFormat.Jpeg);//将图片保存到内存流中
    Response.BinaryWrite(ms.ToArray());//输出验证码图片
    return null;
}

三、汉字验证码示例

汉字验证码常用于防止机器人注册或非法提交内容。可以通过以下代码实现汉字验证码的生成:

public ActionResult VerifyCodeChinese()
{
    string[] array = new string[] { "九曲桥边野草花", "疏影横斜水清浅", "暗自低声烟欲断", "多情自古伤离别", "更那堪冷落清秋节" };//验证码文字数组
    string code = array[new Random(Guid.NewGuid().GetHashCode()).Next(0, array.Length)];
    Session["CodeChinese"] = code;//将验证码保存到Session中,方便后续的验证
    MemoryStream ms = new MemoryStream();
    Bitmap img = new Bitmap(150, 60);
    Graphics g = Graphics.FromImage(img);
    Font font = new Font("微软雅黑", 16, FontStyle.Bold);
    Brush brush = new SolidBrush(Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255)));
    g.Clear(Color.White);
    g.DrawString(code, font, brush, new PointF(0, 10));
    img.Save(ms, ImageFormat.Jpeg);//将图片保存到内存流中
    Response.BinaryWrite(ms.ToArray());//输出验证码图片
    return null;
}

以上三个方法分别生成了数字、数字字母混合、汉字验证码。可以根据实际需要进行选择使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C# 语言入门基础介绍

    C# 语言入门基础介绍 什么是 C# C# 是一种面向对象的编程语言,由 Microsoft 公司开发。它是 .NET 框架的一部分,可以用来开发各种类型的应用程序,例如桌面应用程序、Web 应用程序、移动应用程序等。 C# 语言和 Java 语言非常相似,都是基于面向对象的编程范式,具有相同的语法规则和编程思想。因此,如果您已经熟悉 Java 语言,那么学…

    C# 2023年5月15日
    00
  • C# Linq的OrderBy()方法 – 根据指定的键按升序对序列的元素进行排序

    C#中的Linq提供了一种方便的方法来处理数据序列,其中OrderBy()是排序操作中的一个重要部分。OrderBy()方法可以按照序列中指定的键值对序列进行排序,并返回一个IEnumerable类型的序列。 语法格式 public static IOrderedEnumerable<TSource> OrderBy<TSource, TK…

    C# 2023年4月19日
    00
  • 详解ASP.NET Core Docker部署

    详解ASP.NET Core Docker部署 在本攻略中,我们将深入讲解如何使用Docker容器来部署ASP.NET Core应用程序,并提供两个示例说明。 准备工作 在开始部署ASP.NET Core应用程序之前,您需要完成以下准备工作: 安装Docker 您需要在本地计算机上安装Docker。您可以从Docker官方网站下载并安装Docker。 创建A…

    C# 2023年5月17日
    00
  • C#中的Action、Func和Predicate如何使用

    C#中的Action、Func和Predicate是三个常用的委托类型,它们分别表示参数列表不同的无返回值、有返回值、返回布尔值的委托。 Action Action是一个表示参数类型为void的无返回值委托类型。可以定义最多16个输入参数的Action,用法如下: // 定义一个无参数的Action Action action1 = () => Con…

    C# 2023年6月6日
    00
  • .net中最简单的http请求调用(比如调用chatgpt的openAI接口)

    支持.Net Core(2.0及以上)/.Net Framework(4.5及以上),可以部署在Docker, Windows, Linux, Mac。 http请求调用是开发中经常会用到的功能,因为,很多第三方功能接口往往是通过http地址的形式提供的,比如:ChatGpt、OpenAI、短信服务、在线翻译、地图服务、语音智能、等…   .net中调用ht…

    C# 2023年5月5日
    00
  • 在.NET程序崩溃时自动创建Dump的思路详解

    以下是关于在.NET程序崩溃时自动创建Dump的思路详解: 1. 问题描述 在.NET程序运行过程中,可能会遇到各问题,例如崩溃、死锁、内存泄漏等。为了更好地诊断和解决这些问题我们需要在程序崩溃时自创建Dump文件。本攻略将介绍如何实现在.NET程序崩溃时自动创建Dump文件。 2. 解决方案 在.NET程序中,我们使用Microsoft.Diagnosti…

    C# 2023年5月12日
    00
  • C#对多个集合和数组的操作方法(合并,去重,判断)

    C#对多个集合和数组的操作方法主要包括集合和数组的合并、去重和判断等。下面分别进行详细讲解。 集合和数组的合并 合并方法1:Concat方法 合并两个集合或数组可以使用Concat方法,该方法会返回一个新的集合或数组,包含两个集合或数组中的所有元素。具体用法如下: var list1 = new List<int> { 1, 2, 3 }; va…

    C# 2023年6月7日
    00
  • C#表达式树讲解

    C# 表达式树讲解 在 C# 中,表达式树(Expression Tree)是一个类似于代码的树形数据结构,可以表示出一个语法树、一个 lambda 表达式、一个 LINQ 查询等等。 表达式树是由表达式节点构成的,每个节点代表一个表达式或语句。 表达式树的语法 表达式树和 C# 中的 lambda 表达式比较类似,都是由参数、箭头符号和表达式组成。例如以下…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部