protected void btn_cantSee_Click(object sender, EventArgs e)
{
this.SerialNumber.Create();
}点击“看不清”按钮,重新生成验证码,可有的时候是4个,有的时候是5个,有的时候是7个字符,不知道能否控制让它总显示4个字符?
{
this.SerialNumber.Create();
}点击“看不清”按钮,重新生成验证码,可有的时候是4个,有的时候是5个,有的时候是7个字符,不知道能否控制让它总显示4个字符?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
验证码:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Image ID="Image1" runat="server" ImageUrl="~/Valid.aspx"/>
<a href="javascript:ref();">看不清</a><br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" /></div>
</form>
</body>
</html>
<script>
function ref()
{
document.getElementById("Image1").src="Valid.aspx" ;
}//valid.aspx页面cs文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
public partial class Valid : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//生成随机字符串
string tmp = Send(4); //4位数
Session["tmp"] = tmp;//将验证码存入session,以便校验验证码输入是否正确
//画图
DrawImage(tmp); } private void DrawImage(string str)
{
//定义一个图片对象
Bitmap bm = new Bitmap(60, 25); //Image bm = Image.FromFile(@"E:\Example\SendValid\mm.gif");
//定义一个画板
Graphics g = Graphics.FromImage(bm);
//设置画板背景颜色
g.Clear(Color.White); //定义字体对象
Font fn = new Font("Arial Black", 10);
//定义一个画笔
SolidBrush sb = new SolidBrush(Color.Black); //将字符串画在图片上
g.DrawString(str, fn, sb, 4, 3); DrawLine(g); //将图片以JPEG的格式保存到输出流中
bm.Save(Response.OutputStream, ImageFormat.Jpeg);
bm.Dispose();
Response.End();
} /// <summary>
/// 画线
/// </summary>
private void DrawLine(Graphics g)
{
//定义一个画笔
SolidBrush sb = new SolidBrush(Color.Blue);
Random rand = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < 7; i++)
{
//随机生成起始点
Point d1 = new Point(rand.Next(40), rand.Next(40));
//随机生成终止点
Point d2 = new Point(rand.Next(40), rand.Next(40));
//将两点画成一条直线
g.DrawLine(new Pen(sb), d1, d2);
}
}
private string Send(int n)
{
//定义随机出现的字符,可自己增加,修改数组长度后,下面int j = rand.Next(12);这里的12需要相应修改。
string[] str = new string[]{"a","b","c","d","王","北","1","2","3","4","5","6","7"};
string temp = "";
//定义随机对象
Random rand = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < n; i++)
{
//随机生成下标。
int j= rand.Next(12);
//获取相应字符
temp += str[j];
}
return temp;
}
}</script>
{
snCode.Create();
} while (snCode.SN.Length != 4);
Response.Write(snCode.SN.Length);