Rumah pembangunan bahagian belakang Tutorial C#.Net ASP.NET实现验证码以及刷新验证码的小例子

ASP.NET实现验证码以及刷新验证码的小例子

Jan 13, 2017 pm 02:27 PM

实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

/// <summary>

    /// 生成验证码图片,保存session名称VerificationCode

    /// </summary>

    public static void CreateVerificationCode()

    {

        int number;

        string checkCode = string.Empty;

        //随机数种子

        Random randoms = new Random();

        for (int i = 0; i < 4; i++) //校验码长度为4

        {

            //随机的整数

            number = randoms.Next();

            //字符从0-9,A-Z中随机产生,对应的ASCII码分别为

            //48-57,65-90

            number = number % 36;

            if (number < 10)

            {

                number += 48;

            }

            else

            {

                number += 55;

            }

            checkCode += ((char)number).ToString();

        }

        //在session中保存校验码

        System.Web.HttpContext.Current.Session["VerificationCode"] = checkCode;

        //若校验码为空,则直接返回

        if (checkCode == null || checkCode.Trim() == String.Empty)

        {

            return;

        }

        //根据校验码的长度确定输出图片的长度

        System.Drawing.Bitmap image = new System.Drawing.Bitmap(55, 20);//(int)Math.Ceiling(Convert.ToDouble(checkCode.Length * 15))

        //创建Graphics对象

        Graphics g = Graphics.FromImage(image);

        try

        {

            //生成随机数种子

            Random random = new Random();

            //清空图片背景色

            g.Clear(Color.White);

            //画图片的背景噪音线 10条

            //---------------------------------------------------

            for (int i = 0; i < 10; i++)

            {

                //噪音线起点坐标(x1,y1),终点坐标(x2,y2)

                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);

            }

            //---------------------------------------------------

            //Brush b = Brushes.Silver;

            //g.FillRectangle(b, 0, 0, image.Width, image.Height);

            //---------------------以上两种任选其一------------------------------

            //输出图片中校验码的字体: 12号Arial,粗斜体

            Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));

            //线性渐变画刷

            LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Purple, 1.2f, true);

            g.DrawString(checkCode, font, brush, 2, 2);

            //画图片的前景噪音点 50个

            for (int i = 0; i < 50; 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.Peru), 0, 0, image.Width - 1, image.Height - 1);

            //创建内存流用于输出图片

            using (MemoryStream ms = new MemoryStream())

            {

                //图片格式指定为png

                image.Save(ms, ImageFormat.Jpeg);

                //清除缓冲区流中的所有输出

                System.Web.HttpContext.Current.Response.ClearContent();

                //输出流的HTTP MIME类型设置为"image/Png"

                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";

                //输出图片的二进制流

                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());

            }

        }

        finally

        {

            //释放Bitmap对象和Graphics对象

            g.Dispose();

            image.Dispose();

        }

    }

Salin selepas log masuk

创建一个aspx页面

1

2

3

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AuthCode.aspx.cs" Inherits="AuthCode" %>

 

<%Help.CreateVerificationCode(); %>

Salin selepas log masuk

添加HTML代码,引用

1

2

3

4

5

6

<div class="positionR">

    <label>验证码:</label>

    <span class="style1"> *</span>

    <input type="text" class="yanZm" runat="Server" reg="^.+$" id="txtAuthCode" tip="请输入验证码!" />

    <img class="yanZm_img" src="AuthCode.aspx" alt="" id="imgAuthCode" />

</div>

Salin selepas log masuk

如何实现刷新?

1

2

3

4

5

<script type="text/javascript">

    $("#imgAuthCode").click(function () {

        $(this).attr("src", "AuthCode.aspx?code=" + (new Date()).getTime());

    });

</script>

Salin selepas log masuk

效果图

ASP.NET实现验证码以及刷新验证码的小例子

更多ASP.NET实现验证码以及刷新验证码的小例子相关文章请关注PHP中文网!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1665
14
Tutorial PHP
1270
29
Tutorial C#
1250
24
Relevan berterusan C# .NET: Lihat penggunaan semasa Relevan berterusan C# .NET: Lihat penggunaan semasa Apr 16, 2025 am 12:07 AM

C#.NET masih penting kerana ia menyediakan alat dan perpustakaan yang kuat yang menyokong pelbagai pembangunan aplikasi. 1) C# menggabungkan rangka kerja NET untuk menjadikan pembangunan cekap dan mudah. 2) Mekanisme keselamatan dan sampah jenis C#meningkatkan kelebihannya. 3) .NET menyediakan persekitaran berjalan lintas platform dan API yang kaya, meningkatkan fleksibiliti pembangunan.

Dari web ke desktop: fleksibiliti C# .net Dari web ke desktop: fleksibiliti C# .net Apr 15, 2025 am 12:07 AM

C#.netisversatileforbothwebanddesktopdevelopment.1) Forweb, useasp.netfordynamicapplications.2) Fordesktop, ExployWindowsFormsor Wpfforrichinterfaces.3) UseXamarinforcross-platformdevelopment, enablingcodesharingacrosswindows, macOS, linux, andmobiledevices.

C# sebagai bahasa yang serba boleh. NET: Aplikasi dan contoh C# sebagai bahasa yang serba boleh. NET: Aplikasi dan contoh Apr 26, 2025 am 12:26 AM

C# digunakan secara meluas dalam aplikasi peringkat perusahaan, pembangunan permainan, aplikasi mudah alih dan pembangunan web. 1) Dalam aplikasi peringkat perusahaan, C# sering digunakan untuk ASP.Netcore untuk membangunkan WebAPI. 2) Dalam pembangunan permainan, C# digabungkan dengan enjin Perpaduan untuk merealisasikan kawalan peranan dan fungsi lain. 3) C# menyokong polimorfisme dan pengaturcaraan tak segerak untuk meningkatkan fleksibiliti kod dan prestasi aplikasi.

Adakah C# .net sesuai untuk anda? Menilai kebolehgunaannya Adakah C# .net sesuai untuk anda? Menilai kebolehgunaannya Apr 13, 2025 am 12:03 AM

C#.netissusuitibleforenterprise-levelapplicationswithinthememicrosoftecosystemduetoitsstrongtyping, richlibraries, androbustperformance.

C# .NET dan Masa Depan: Mengadaptasi Teknologi Baru C# .NET dan Masa Depan: Mengadaptasi Teknologi Baru Apr 14, 2025 am 12:06 AM

C# dan .NET menyesuaikan diri dengan keperluan teknologi baru melalui kemas kini dan pengoptimuman berterusan. 1) C# 9.0 dan .NET5 Memperkenalkan jenis rekod dan pengoptimuman prestasi. 2) .Netcore meningkatkan sokongan asli dan kontena awan. 3) ASP.Netcore mengintegrasikan dengan teknologi web moden. 4) ML.NET menyokong pembelajaran mesin dan kecerdasan buatan. 5) Pengaturcaraan Asynchronous dan Amalan Terbaik meningkatkan prestasi.

C# kod dalam .NET: Meneroka proses pengaturcaraan C# kod dalam .NET: Meneroka proses pengaturcaraan Apr 12, 2025 am 12:02 AM

Proses pengaturcaraan C# dalam .NET termasuk langkah -langkah berikut: 1) Menulis C# Code, 2) Menyusun bahasa pertengahan (IL), dan 3) yang dilaksanakan oleh Runtime .NET (CLR). Kelebihan C# dalam .NET adalah sintaks moden, sistem jenis yang kuat dan integrasi yang ketat dengan Rangka Kerja .NET, sesuai untuk pelbagai senario pembangunan dari aplikasi desktop ke perkhidmatan web.

Menggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi Langkah Menggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi Langkah Apr 23, 2025 am 12:06 AM

Bagaimana cara menggunakan aplikasi C# .net ke Azure atau AWS? Jawapannya ialah menggunakan Azureappservice dan AwselasticBeansTalk. 1. Pada Azure, mengautomasikan penggunaan menggunakan Azureappservice dan Azurepipelines. 2. Pada AWS, gunakan Amazon ElasticBeansTalk dan AWSLambda untuk melaksanakan penempatan dan pengiraan tanpa pelayan.

C# dan runtime .net: bagaimana mereka bekerjasama C# dan runtime .net: bagaimana mereka bekerjasama Apr 19, 2025 am 12:04 AM

C# dan .NET Runtime bekerjasama rapat untuk memperkasakan pemaju untuk keupayaan pembangunan yang cekap, kuat dan silang platform. 1) C# adalah bahasa pengaturcaraan yang berorientasikan objek dan berorientasikan objek yang direka untuk mengintegrasikan dengan lancar dengan rangka .NET. 2) Runtime NET menguruskan pelaksanaan kod C#, menyediakan pengumpulan sampah, keselamatan jenis dan perkhidmatan lain, dan memastikan operasi yang cekap dan silang platform.

See all articles