C# 实现验证码 + 登录的整合案例

简介: 整合图形验证码与用户登录功能,实现安全的登录验证流程。系统生成验证码图片并校验输入,结合用户名密码双重验证,提升账户安全性,有效防止自动化攻击。

将图形验证码和用户登录功能整合,实现带验证码的登录验证流程。
public class CaptchaLoginSystem
{
// 生成图形验证码并返回验证码文本
public static string GenerateCaptchaImage(string outputPath)
{
var captcha = CaptchaDemo.GenerateCaptcha(4);
// 调用之前的图形验证码生成方法
WinFormsCaptcha.GenerateCaptchaImage(captcha, outputPath);
return captcha;
}

// 登录验证(用户名+密码+验证码)
public static bool Login(string username, string password, string inputCaptcha, string realCaptcha)
{
    // 验证验证码
    if (!string.Equals(inputCaptcha, realCaptcha, StringComparison.OrdinalIgnoreCase))
    {
        Console.WriteLine("验证码错误!");
        return false;
    }
    // 验证用户名密码
    return LoginSystem.Login(username, password);
}

// 调用示例
public static void TestLogin()
{
    string captchaPath = "captcha.png";
    string realCaptcha = GenerateCaptchaImage(captchaPath);
    Console.WriteLine("验证码图片已生成,请查看: " + captchaPath);

    Console.Write("用户名: ");
    string user = Console.ReadLine();
    Console.Write("密码: ");
    string pwd = Console.ReadLine();
    Console.Write("验证码: ");
    string inputCaptcha = Console.ReadLine();

    bool success = Login(user, pwd, inputCaptcha, realCaptcha);
    Console.WriteLine(success ? "登录成功" : "登录失败");
}

}

相关文章
|
2天前
|
安全 C#
C# 泛型:实现类型安全的通用代码
泛型通过类型参数(如T)实现类型通用性,可定义不指定具体类型的类或方法,使用时再确定类型。示例中,Swap<T>方法可交换任意同类型变量,List<T>集合避免装箱拆箱,提升性能与安全。
|
2天前
|
存储 安全 C#
C# 数组与集合:List<T> 最常用场景
数组长度固定,集合(List&lt;T&gt;)可动态增删,支持泛型与类型安全。常用操作包括添加、删除、遍历和查询元素,是开发中首选的动态数据存储方式。
|
2天前
|
存储 开发框架 缓存
C# 实现图片验证码的 WebAPI 版(ASP.NET Core)
基于ASP.NET Core实现的验证码服务,生成带干扰线和随机旋转文字的4位图文验证码,支持内存存储与验证。需安装System.Drawing.Common包。
|
2天前
|
C# 索引
C# 循环结构:for/foreach/while 效率对比
循环用于重复执行代码,根据场景选择:for 适合已知次数,foreach 简洁遍历集合,while 适用于条件控制。示例演示遍历商品价格列表并计算总和,展示三种循环的用法与差异。(239字)
|
2天前
|
C#
C# 实现简单的 Excel 数据写入工具
基于EPPlus库实现C#将数据写入Excel文件,支持自定义表头与多行数据,自动调整列宽,操作简便,适用于非商业场景的数据导出需求。
|
2天前
|
网络协议 安全 C#
C# 实现基于 TCP 的简单聊天程序(服务端)
基于TcpListener实现TCP聊天服务器,监听指定端口,接收客户端连接并实时转发消息。支持多客户端并发通信,新连接自动加入广播列表,断开后自动移除,确保线程安全与稳定运行。
|
2天前
|
存储 C#
C# 实现简单的备忘录模式
备忘录模式在不破坏封装性的前提下,捕获并保存对象的内部状态,以便后续恢复。通过原发器创建备忘录,管理者存储备忘录,可实现状态回滚。
|
2天前
|
C#
C# 条件判断:if-else 与 switch 的实用场景
条件判断是流程控制的核心。if-else适用于多级条件判断,如根据积分决定会员等级;switch适用于多值匹配,C# 7.0+支持字符串和数值匹配,可清晰处理会员等级对应的优惠策略。
|
2天前
|
C#
52. C# 实现简单的责任链模式
通过责任链模式将请求的发送者与接收者解耦,多个处理器形成链式结构,依次处理不同请求。每个处理器可自行处理或传递给下一节点,提升灵活性与扩展性。
|
2天前
|
安全 C#
C# 实现简单的单例模式(懒汉式)
单例模式确保一个类仅存在一个实例,并提供全局访问点。通过私有构造函数防止外部实例化,结合静态属性和延迟初始化实现线程安全的唯一实例,常用于日志、配置管理等场景。

热门文章

最新文章