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日

相关文章

  • ASP.NET配置文件Web.config用法详解

    我来详细讲解一下ASP.NET配置文件Web.config用法的攻略。 什么是Web.config配置文件 Web.config是ASP.NET的配置文件,用于设置应用程序级别的配置信息。它可以定义应用程序的全局设置、连接字符串、安全性、错误标识和其他功能。在ASP.NET的开发中,Web.config文件是非常常见且重要的文件,因为其中定义了很多应用程序的…

    C# 2023年6月3日
    00
  • C# Volatile的具体使用

    关于C#中Volatile的具体使用,我先介绍一下Volatile的作用和用途。Volatile是C#中用来保证多线程并发访问共享变量时线程安全的一种机制。当一个变量被声明为Volatile类型后,就可以保证多个线程并发访问这个变量时,数据不会出现意外的错误(比如数据不一致、数据丢失等)。 Volatile变量的特点是每次访问都是直接从内存中读取或写入变量的…

    C# 2023年5月15日
    00
  • c# 循环语句的使用方法

    下面是关于“C#循环语句的使用方法”的详细攻略。 什么是循环语句? 循环语句是编程中常用的一种控制语句,它可以重复执行同一段代码,以达到一定的效果。 在C#语言中,常用的循环语句有for循环、while循环、do-while循环和foreach循环。 for循环的使用方法 for循环是最为常用的一种循环语句,它的基本用法如下: for(初始化表达式; 条件表…

    C# 2023年6月7日
    00
  • Linq两个List集合取交集的实现

    为了实现两个List集合的交集,我们可以使用Linq中提供的Intersect方法。这个方法会返回两个集合中共有的元素,而且仅会返回一次(即不会有重复元素)。下面是具体的实现步骤: 1. 引入命名空间 首先要引入System.Linq这个命名空间,因为Linq是其中的一部分: using System.Linq; 2. 创建两个List集合 假设我们要比较的…

    C# 2023年6月1日
    00
  • ASP.NET Core MVC如何实现运行时动态定义Controller类型

    ASP.NET Core MVC是一款开源的高性能Web框架,使用C#语言编写,它支持运行在Windows、Linux和macOS操作系统上,为 Web 开发提供了高效、灵活、安全的解决方案。ASP.NET Core MVC的一个重要特点就是支持在运行时动态定义Controller类型。下面是实现该功能的完整攻略和两条示例说明。 1. 动态定义Control…

    C# 2023年5月31日
    00
  • C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)

    C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)是一款完全开源免费的人脸识别程序,使用者可以在本地环境下运行,不需要联网即可进行人脸识别。下面是详细的使用攻略。 1. 安装ArcSoft SDK 首先,在官网下载并安装ArcSoft SDK,根据自己的操作系统版本选择相应的SDK安装包,可以在ArcSoft官网的开发者中心下载: http://w…

    C# 2023年5月15日
    00
  • C#反射(Reflection)对类的属性get或set值实现思路

    C#反射(Reflection)是C#语言的一项重要特性,它允许在运行时动态的访问和修改.NET程序集中的类型信息。其中,对类的属性进行get或set值也是Reflection的核心功能之一。 在C#中,类的属性可以使用get和set来定义。其中,get可以取得该属性的值,而set可以设置该属性的值。而反射(Reflection)则可以通过以下的步骤来获取和…

    C# 2023年5月31日
    00
  • 浅谈c#开发者应该了解的15个特性

    现在让我为您详细讲解 “浅谈c#开发者应该了解的15个特性” 这个话题。 1. 引言 C# 是一种面向对象的编程语言,由微软开发。它是一种通用编程语言,适用于开发大量应用程序,从桌面应用程序、Web 应用程序和游戏到移动应用程序。C# 为开发者提供了许多有用的特性,使得开发者可以更轻松地编写高质量的应用程序。在这篇文章中,我们将介绍开发者应该了解的一些特性。…

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