• 【原】简单的asp.net验证码实现


    创建一个页面,名称为VerificationCode.aspx

    using System;
    using System.Drawing;
    using System.Drawing.Imaging;

    namespace VerificationCodeDemo
    {
        
    public partial class VerificationCode : System.Web.UI.Page
        {
            
    /// <summary>
            
    /// 页面初始化
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            protected void Page_Load(object sender, EventArgs e)
            {
                
    string verificationCode = CreateRandomCode(4);
                Session[
    "VerificationCode"= verificationCode;
                CreateImage(verificationCode);
            }

            
    /// <summary>
            
    /// 产生数字和字符混合的随机字符串
            
    /// </summary>
            
    /// <param name="i">随机字符的位数</param>
            
    /// <returns>随机字符串</returns>
            private string CreateRandomCode(int i)
            {
                
    string allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
                
    char[] allCharArray = allChar.ToCharArray();
                
    string randomCode = string.Empty;

                Random rand 
    = new Random();

                
    for (int j = 0; j < i; j++)
                {
                    
    int k = rand.Next(61);
                    randomCode 
    += allCharArray.GetValue(k);
                }

                
    return randomCode;
            }

            
    /// <summary>
            
    /// 生成图象验证码
            
    /// </summary>
            
    /// <param name="verificationCode">随机字符串</param>
            private void CreateImage(string verificationCode)
            {
                
    int iwidth = (int)(verificationCode.Length * 11.5);
                Bitmap image 
    = new Bitmap(iwidth, 20);
                Graphics g 
    = Graphics.FromImage(image);
                Font f 
    = new Font("Arial"10, FontStyle.Bold);
                Brush b 
    = new SolidBrush(Color.Azure);                      // 字母白色
                g.Clear(Color.Brown);                                       // 背景灰色
                g.DrawString(verificationCode, f, b, 33);
                Pen blackPen 
    = new Pen(Color.Black, 0);
                Random rand 
    = new Random();
                System.IO.MemoryStream ms 
    = new System.IO.MemoryStream();
                image.Save(ms, ImageFormat.Jpeg);
                Response.ClearContent();
                Response.ContentType 
    = "image/Jpeg";
                Response.BinaryWrite(ms.ToArray());
                g.Dispose();
                image.Dispose();
            }
        }

    }

    再创建一个页面,名称为WebForm1.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="VerificationCodeDemo.WebForm1" %>

    <!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>
        
    <script language="javascript" type="text/javascript">
          function check() {
            var v 
    = document.getElementById("image1");
            v.setAttribute(
    'src''VerificationCode.aspx?' + Math.random());
          }
        
    </script>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
          
    <!-- 直接点击图片或文字均刷新 -->
          
    <img id="image1" src="VerificationCode.aspx" alt="验证码" onclick="this.src=this.src+'?'" />
          
    <a href="javascript:check()">看不清楚</a>
        
    </div>
        
    </form>
    </body>

    </html> 

  • 相关阅读:
    ANDROID笔记:shape的简单使用
    ANDROID笔记:根据长宽实现图片压缩
    ANDROID笔记:PopupMenu的用法
    ANDROID笔记:AdapterContextMenuInfo在ListView中的用法
    ANDROID笔记:利用XML布局文件生成Menu
    ANDROID笔记:ContextMenu的用法
    ANDROID笔记:JSON和Adapter的使用
    ANDROID笔记:Dialog的几种用法
    ANDROID笔记:AdapterViewFlipper和ViewFlipper的简单使用
    #2020征文-开发板# 用鸿蒙开发AI应用(一)硬件篇
  • 原文地址:https://www.cnblogs.com/temptation/p/2051613.html
Copyright © 2020-2023  润新知