当前位置:  编程技术>.net/c#/asp.net

如何解决 asp.net 点击验证码不刷新的问题

    来源: 互联网  发布时间:2014-08-30

    本文导语:  如何解决 asp.net 点击验证码不刷新的问题,有兴趣的朋友,可以看看这篇文章。 src="/blog_article/code.html" 改成 src="/blog_article/code/id/.html"+Math.random(); 1、验证码页面:   代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Drawing; ...

如何解决 asp.net 点击验证码不刷新的问题,有兴趣的朋友,可以看看这篇文章。

src="/blog_article/code.html" 改成 src="/blog_article/code/id/.html"+Math.random();

1、验证码页面:
 

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class code : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DrawCode();
    }
    public void DrawCode()
    {
        int width = 60;
        int height = 20;
        //创建图象
        Bitmap img = new Bitmap(width, height);
        //从图象上获取一个绘画图
        Graphics g = Graphics.FromImage(img);
        try
        {
            //定义字体
            Font font = new Font("Comic sans ms", 12, FontStyle.Bold);
            //定义黑色画笔
            SolidBrush brush = new SolidBrush(Color.Black);
            //定义钢笔,绘制干扰线
            Pen pen1 = new Pen(Color.Gray);
            Pen pen2 = new Pen(Color.Gray);

            //清除整个绘画图面并以指定颜色填充
            g.Clear(ColorTranslator.FromHtml("#F0F0F0"));
            //定义文字的绘制矩形区域
            Rectangle rect = new Rectangle(2, 2, width, height);
            //定义一个随机数用于绘制干扰线
            Random rand = new Random();
            //生成两条横向干扰线
            for (int i = 0; i < 2; i++)
            {
                //Define Point1
                Point p1 = new Point(0, rand.Next(height));
                //Define Point2
                Point p2 = new Point(width, rand.Next(height));
                g.DrawLine(pen1, p1, p2);
            }
            //生成四条纵向干扰线
            for (int i = 0; i < 4; i++)
            {
                //Define Point1
                Point p1 = new Point(rand.Next(width), 0);
                //Define Point2
                Point p2 = new Point(rand.Next(width), height);
                //DrawLine
                g.DrawLine(pen2, p1, p2);
            }
            string strsj = strRand();
            g.DrawString(strsj, font, brush, rect);
            //输出图象           
            img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            Session["iCode"] = strsj.ToLower();
            //return strRand().ToLower();
        }
        catch (Exception error)
        {
            throw new Exception(error.Message);
        }
        finally
        {
            g.Dispose();
            img.Dispose();
        }
    }
    //产生随机数
    public string strRand()
    {
        char[] strCode = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
        string strRandomCode = "";
        Random random = new Random();
        for (int i = 0; i < 4; i++)
        {
            strRandomCode += strCode[random.Next(strCode.Length)];
        }
        return strRandomCode;
    }
}

调用方法:
 

代码如下:
验证码:

验证码


点击刷新 



  function reloadcode() {
    var verify = document.getElementById('icode');
    verify.setAttribute('src', 'code.aspx?id='+Math.random());
}


    
 
 

您可能感兴趣的文章:

  • 紧急求助,有关mount刷新的问题!解决了还可以加分!
  • 大家帮我解决刷新率问题吧!
  • 解决ie动态修改link样式,import css不刷新的问题
  • jquery在firefox中刷新iframe页面,提示重复之前动作的解决方法
  • android中ListView多次刷新重复执行getView的解决方法
  • 显卡不支持,现在屏幕刷新率只有H40, V60有没有高手能帮我解决?
  • php后台经常提示无法连接mysql 刷新后又可以访问的解决方法
  • JSP刷新页面表单重复提交问题解决办法分享
  • asp.net页面刷新后字体等变大问题的解决方法
  • 【已解决】标签页刷新问题
  • c#(asp.net)防止刷新重复提交数据的解决方法
  • ASP.NET防止页面刷新的两种解决方法小结
  • 解决JSTL foEach标签 刷新报错的方法
  • 无法显示网页验证码问题怎么解决
  • 网页验证码无法显示的解决方法
  • 当邮件服务器设置了身份验证时,邮件发送程序返回 SMTP 550 错误时怎么解决?
  • SMTP 发信验证怎么解决?谢谢!
  • thinkphp验证码显示不出来的解决方法
  • asp.net ajax时用alert弹出对话框与验证控件冲突的解决方法
  • C# HttpClient Cookie验证解决方法
  • ThinkPHP自动验证失败解决方法示例
  • 我下了Fedaro core 10 (Fedora-10-i386-DVD.iso),用VMware 5 安装好后 ,用root登录,但是提示无法验证用户,如何解决?
  • win2003安装sqlserver 2000提示无法验证产品密钥的解决方法
  • Jquery validation remote 验证的缓存问题解决方法
  • 没有sa密码无法集成windows身份验证登录的解决方法
  • sqlserver 无法验证产品密匙的完美解决方案[测试通过]
  • win2003上安装SQL2000时CD-KEY(序列号)无法验证解决方法
  • 关于java 图形验证码的解决方法
  • 网页验证码无法显示解决方法大全
  • jquery validate不验证的问题如何解决
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 点击表单提交时出现jQuery没有权限的解决方法
  • firefox的超链接点击去除扩大的难看虚线的解决方法
  • Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
  • 点击图标进入指定浏览器将首页设置全透明解决一闪而过问题
  • jquery mobile的触控点击事件会多次触发问题的解决方法
  • Android ListView的item背景色设置和item点击无响应的解决方法
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!
  • andriod中UIScrollView无法正常滚动的解决方法
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 求数据库解决方案===求数据库解决方案
  • sqlserver iis7站长之家
  • MYSQL安装时解决要输入current root password的解决方法
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • 解决oracle用户连接失败的解决方法
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 呵呵,前段时间Ubuntu服务器版的问题总算解决了,解决方法就是重新安装桌面版-_-!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3