IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> asp.net利用C#语言生成验证码 -> 正文阅读

[JavaScript知识库]asp.net利用C#语言生成验证码

前言(生成验证码的方法简介)

利用button按钮实现验证码的生成 + ajax的UpdatePanel控件实现局部刷新(因为一旦点击button按钮进行验证码的重新生成就会刷新页面,所以需要通过ajax进行局部刷新)

说明(博主的血泪史)

博主一开始采用的是 文本框用户输入验证码+div图层显示验证码+js生成验证码+CustomValidator自定义验证控件(再自定义一个函数用来判断用户输入的验证码是否正确) 这个方法,思路是正确的,但是在运行的时候不知道为什么系统自行给CustomValidator自定义验证控件加了"Visibility:hidden"属性,使判断结果无法展示出来,而且上面的属性修改没用,一运行程序还是会显示hidden. !!!就无语
后来博主换了方法用label标签显示验证码+js生成验证码,然后将验证码赋给label( label的id.innerHtML=验证码)+后台获取验证码的值后在方法里面进行验证,结果发现无法获取label的文本值(文本值为空),后来百度有说是用txtBox的,但是博主用了还是无法获取值,然后博主深思熟虑想是不是js赋值给txtBox/label和后台获取的对应的文本内容是不一致的.然后又换了另外的方法
label/txtBox显示验证码+后台随机产生验证码然后在赋值给label/txtBox(PageLoad方法里面随机生成验证码—因为一打开页面就需要显示出验证码),但是这又出了bug—>label/txtBox的文本内容与随机生成的文本内容不一致,这样导致后台验证一直是错误
博主就一个字: 绝!!!
后来博主千思万想—-利用button+ajax的方法
button的文本用来显示验证码,(这里要注意在最开始就给button的文本一个默认验证码–因为button的click事件只有点击了才能实行)button的click事件用来随机生成验证码,但是因为一点击button,就会进行全局刷新(整个页面刷新,但是咱们只是想让验证码部分进行刷新),所以利用ajax进行局部刷新.
最后经过测试,结果正确!!!
千辛万苦终于写出来了!!!在写不出来,博主要哭死了

生成验证码的代码展示

.aspx页面代码(前端代码)

 <asp:TextBox ID="txtCheck" runat="server" placeholder="请输入验证码" autocomplete="off" class="layui-input" style="display: inline-block;" ></asp:TextBox>
                <asp:ScriptManager runat="server"></asp:ScriptManager>  <!--使用ajax一定要先添加管理控件-->
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" style="width:110px;display:inline-block ;">   <!--使用ajax的局部刷新控件-->
                    <ContentTemplate>
                         <asp:Button ID="btnCode" runat="server" Text="5gQ2" OnClick="btnCode_Click" BorderStyle="None" Font-Bold="True" Height="33px" Width="72px" Font-Size="X-Large"  style="margin-left:25px;"/>  <!--button控件放在ajax局部刷新控件内部,则button控件的点击引起的刷新也会自动引起ajax进行局部刷新-->
                    </ContentTemplate>
                </asp:UpdatePanel>

.aspx.cs页面代码(后台代码)

//button按钮的click事件
protected void btnCode_Click(object sender, EventArgs e)
    {
        string[] randNumber = { "1","2", "3", "4", "5", "6", "7", "8", "9", "0",
        "q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","c","z","x","v","b","n","m","Q","E",
        "R","T","Y","U","I","A","D","F","G","H","J","K","L","Z","X","C","V","B","N","M"};
        Random rd = new Random();    //创建随机(Random)类对象实例
        btnCode.Text = "";
        for (int i = 0; i < 4; i++)   //随机生成四个验证码元素
        {
            int index = rd.Next(randNumber.Length); //随机生成一个数--范围[0,randNumber.Length)  ---用来表示数组的下标
            btnCode.Text += randNumber[index];  //随机生成的元素赋值给button的文本
        }

    }

.aspx.cs后台验证代码(判断用户验证码是否输入正确)

<!--下面这部分验证正误的代码你可以写在你的注册/登录等按钮事件里-->

if (btnCode.Text.Trim() == txtCheck.Text.Trim())  //判断验证码是否输入正确
{
Response.Write("<script>alert('" + "验证成功" + "')</script>");
} 
else
{
  Response.Write("<script>alert('" + "验证失败!验证码输入错误,请重新输入!" + "')</script>");
}
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:18:19  更:2021-11-20 18:19:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:55:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码