求一校验码摸块,C#网站中的.用在用户登陆的时候.不用太复杂,方便使用就行.最好在给一个小小的例子谢谢各位大虾了~~~~~~嘿嘿

解决方案 »

  1.   

    http://blog.csdn.net/sw515/archive/2005/02/03/279364.aspx
    这个你看看,可能有帮助的说
      

  2.   

    以前写的你看看吧 有详细的列子与说明
    http://www.cnblogs.com/Activer/archive/2006/01/30/324332.html
      

  3.   

    先声明:这是我用的,但是不是我原创,具体作者我忘记了!
    ------------------
    CheckCode.aspx
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    this.CreateCheckCodeImage(GenerateCheckCode());
    }
    private string GenerateCheckCode()
    {
    int number;
    char code;
    string checkCode = String.Empty;
    System.Random random = new Random();
    for(int i=0; i<5; i++)
    {
    number = random.Next();
    if(number % 2 == 0)
    code = (char)('0' + (char)(number % 10));
    else
    code = (char)('A' + (char)(number % 26));
    checkCode += code.ToString();
    }
    Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
    return checkCode;
    } private void CreateCheckCodeImage(string checkCode)
    {
    if(checkCode == null || checkCode.Trim() == String.Empty)
    return;
    System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
    Graphics g = Graphics.FromImage(image);
    try
    {
    //生成随机生成器
    Random random = new Random();
    //清空图片背景色
    g.Clear(Color.White);
    //画图片的背景噪音线
    for(int i=0; i<25; i++)
    {
    int x1 = random.Next(image.Width);
    int x2 = random.Next(image.Width);
    int y1 = random.Next(image.Height);
    int y2 = random.Next(image.Height);
    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
    } Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
    System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
    g.DrawString(checkCode, font, brush, 2, 2);
    //画图片的前景噪音点
    for(int i=0; i<100; i++)
    {
    int x = random.Next(image.Width);
    int y = random.Next(image.Height);
    image.SetPixel(x, y, Color.FromArgb(random.Next()));
    }
    //画图片的边框线
    g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    Response.ClearContent();
    Response.ContentType = "image/Gif";
    Response.BinaryWrite(ms.ToArray());
    }
    finally
    {
    g.Dispose();
    image.Dispose();
    }
    }
      

  4.   

    Login.aspx<td>
    用户名:<INPUT id="UserName" style="BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #ffffff 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #ffffff"
    maxLength="20" name="UserName">
    </td>
    </tr>
    <tr>
    <td>
    密 码:<INPUT id="Password" style="BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #ffffff 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #ffffff"
    type="password" maxLength="20" name="Password">
    </td>
    </tr>
    <tr>
    <td>校验码:<INPUT id="ValidateCode" style="BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #ffffff 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #ffffff"
    maxLength="20" name="ValidateCode"> <img src="CheckCode.aspx"></td>
    </tr>
      

  5.   

    private void BtLogin_Click(object sender, System.EventArgs e)
    {
    if(Request["CheckCode"] == null)
    {
    Anthem.Manager.AddScriptForClientSideEval("alert('"+"您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统!"+"')");
    return;
    }  if(String.Compare(Request["CheckCode"],Request["ValidateCode"],true) != 0)
    {
    Anthem.Manager.AddScriptForClientSideEval("alert('"+"验证码错误,请输入正确的验证码!"+"')");
    return;
    }
    else
    {
    SqlDataReader Reader;
    string role="";
    SqlParameter[] Sqlparas={
    new SqlParameter("@UserName", SqlDbType.VarChar,10),
    new SqlParameter("@PassWord",SqlDbType.VarChar,10)
    };
    Sqlparas[0].Value=Request["UserName"];
    Sqlparas[1].Value=Request["PassWord"];
    ts.SetConnectString("CMS");
    ts.RunProcedure("CheckLoginRole",Sqlparas,out Reader); bool tf=Reader.HasRows;
    if (tf)
    {
    int num;
    SqlParameter[] paras={
     new SqlParameter("@UserName", SqlDbType.VarChar,10),
     new SqlParameter("@FromIP",SqlDbType.VarChar,50)
     };
    paras[0].Value=Request["UserName"];
    paras[1].Value=Page.Request.UserHostAddress;
    ts.SetConnectString("CMS");
    ts.RunProcedure("UserLogAdd",paras,out num);
    while (Reader.Read())
    {
    role =role+Reader["FID"].ToString()+",";
    }
    Session["UserName"]=Request["UserName"];
    Session["role"]=role;
    Anthem.Manager.AddScriptForClientSideEval("window.location = 'MainForm.aspx';");
    }
    else
    {
    Anthem.Manager.AddScriptForClientSideEval("alert('密码和用户名不匹配!!')");
    }
    }
    }
      

  6.   

    fds2003(Hunter) 前辈,代码用不了哦,少了很多引用呢.可以把引用部分贴出来吗?
      

  7.   

    找不到哦~~我的是.net2003,想要C#开发的例子,最好能运行的