利用ashx生成图形验证码实例教程
这篇文章主要介绍了asp.net使用ashx生成图形验证码的方法,结合实例形式分析了asp.net生成图形验证码的步骤、实现方法与相关注意事项,需要的朋友可以参考下
本文实例讲述了asp.net使用ashx生成图形验证码的方法。分享给大家供大家参考,具体如下:
验证码的好处不用我多说,你们都懂的。我在网上看到有人把验证码直接写在aspx页面里,也就是说这种方式请求验证码等于请求一个页面,这样做很不科学。如下所示
<form id="form1" runat="server"> <p> <asp:Image ID="Image1" runat="server" ImageUrl="Default.aspx" /> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </p> </form>
这个代码看着就觉得写代码的人比较欠揍,代码写成这样子着实郁闷。验证吗也不写点script做下切换。
下面我介绍一种方式来实现这样的功能
1. 写个ashx生成图形验证码
using System; using System.Collections; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using System.Web.SessionState; using System.Drawing; namespace usechecknum.ashx { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class doCreateNum : IHttpHandler,IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; string checkCode = GetValidation(5); // 产生5位随机验证码字符 context.Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证 System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); // 画图片的背景噪音线 int i; for (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.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); //画图片的前景噪音点 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); context.Response.ClearContent(); context.Response.ContentType = "image/Gif"; context.Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } } public string GetValidation(int num) { string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //"或者写汉字也行" string validatecode = ""; Random rd = new Random(); for (int i = 0; i < num; i++) { validatecode += str.Substring(rd.Next(0, str.Length), 1); } return validatecode; } public bool IsReusable { get { return false; } } } }
2. 在页面上显示验证码,因为我们生成的是图形,所以可以直接写在标签里,我们只要写段简单的脚本就可以点击鼠标切换验证码了
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="usechecknum._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> <script language="javascript" type="text/javascript"> function changeCode() { var imgNode = document.getElementById("vimg"); imgNode.src = "ashx/doCreateNum.ashx?t=" + (new Date()).valueOf(); // 这里加个时间的参数是为了防止浏览器缓存的问题 } </script> <body> <form id="form1" runat="server"> 请输入验证码:<input type="text" name="checknum"/><img src="ashx/doCreateNum.ashx" id="vimg" onclick="changeCode()" /> </form> </body> </html>
说了半天,该是时候看看生成的验证码长什么样了
Atas ialah kandungan terperinci 利用ashx生成图形验证码实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kami biasanya menerima fail PDF daripada kerajaan atau agensi lain, sesetengahnya dengan tandatangan digital. Selepas mengesahkan tandatangan, kami melihat mesej SignatureValid dan tanda semak hijau. Sekiranya tandatangan tidak disahkan, kesahihannya tidak diketahui. Mengesahkan tandatangan adalah penting, mari lihat cara melakukannya dalam PDF. Cara Mengesahkan Tandatangan dalam PDF Mengesahkan tandatangan dalam format PDF menjadikannya lebih boleh dipercayai dan dokumen lebih cenderung untuk diterima. Anda boleh mengesahkan tandatangan dalam dokumen PDF dengan cara berikut. Buka PDF dalam Adobe Reader Klik kanan tandatangan dan pilih Show Signature Properties Klik butang Tunjukkan Sijil Penandatangan Tambah tandatangan pada senarai Sijil Dipercayai daripada tab Amanah Klik Sahkan Tandatangan untuk melengkapkan pengesahan Biarkan

1. Selepas membuka WeChat, klik ikon carian, masukkan pasukan WeChat, dan klik perkhidmatan di bawah untuk masuk. 2. Selepas memasukkan, klik pilihan alat layan diri di sudut kiri bawah. 3. Selepas mengklik, dalam pilihan di atas, klik pilihan untuk menyahsekat/merayu untuk pengesahan tambahan.

Kod Sistem Kewangan India ialah singkatan. Cawangan bank India yang mengambil bahagian dalam sistem pemindahan dana elektronik dikenal pasti melalui kod khas 11 aksara. Reserve Bank of India menggunakan kod ini dalam transaksi internet untuk memindahkan dana antara bank. Kod IFSC terbahagi kepada dua bahagian. Bank dikenal pasti dengan empat aksara pertama, manakala cawangan dikenal pasti oleh enam aksara terakhir. NEFT (Pemindahan Dana Elektronik Nasional), RTGS (Penyelesaian Kasar Masa Nyata) dan IMPS (Perkhidmatan Pembayaran Segera) ialah beberapa transaksi elektronik yang memerlukan kod IFSC. Kaedah Beberapa cara biasa untuk mengesahkan kod IFSC menggunakan ungkapan biasa ialah: Semak sama ada panjangnya betul. Semak empat aksara pertama. Semak aksara kelima.Che

Dalam golang, pengekodan Unicode dan jenis rune diperlukan untuk mengesahkan sama ada input ialah aksara lebar penuh. Pengekodan Unikod ialah standard pengekodan aksara yang memberikan titik kod angka yang unik kepada setiap aksara dalam set aksara, yang merangkumi aksara lebar penuh dan aksara separuh lebar. Jenis rune ialah jenis yang digunakan untuk mewakili aksara Unicode dalam golang. Langkah pertama ialah menukar input menjadi kepingan jenis rune. Ini boleh ditukar dengan menggunakan jenis []rune golang, mis.

Golang ialah bahasa pengaturcaraan moden berprestasi tinggi yang sering melibatkan pemprosesan rentetan dalam pembangunan harian. Antaranya, mengesahkan sama ada input dalam huruf besar adalah keperluan biasa. Artikel ini akan memperkenalkan cara untuk mengesahkan sama ada input adalah huruf besar dalam Golang. Kaedah 1: Gunakan pakej unicode Pakej unicode dalam Golang menyediakan satu siri fungsi untuk menentukan jenis pengekodan aksara. Untuk huruf besar, julat pengekodan yang sepadan ialah 65-90 (perpuluhan), jadi kita boleh menggunakan unicod

PHP8 ialah versi PHP terkini, membawa lebih banyak kemudahan dan fungsi kepada pengaturcara. Versi ini mempunyai tumpuan khusus pada keselamatan dan prestasi, dan salah satu ciri baharu yang perlu diberi perhatian ialah penambahan keupayaan pengesahan dan tandatangan. Dalam artikel ini, kita akan melihat dengan lebih dekat ciri baharu ini dan kegunaannya. Pengesahan dan tandatangan adalah konsep keselamatan yang sangat penting dalam sains komputer. Ia sering digunakan untuk memastikan bahawa data yang dihantar adalah lengkap dan sahih. Pengesahan dan tandatangan menjadi lebih penting apabila berurusan dengan transaksi dalam talian dan maklumat sensitif kerana jika seseorang dapat mengganggu data, ia berpotensi

Dalam dunia dalam talian moden, keselamatan laman web dan perlindungan privasi pengguna telah menjadi topik yang semakin penting. Antaranya, kaedah teknikal pengesahan mesin manusia telah menjadi salah satu cara yang sangat diperlukan untuk mencegah serangan berniat jahat. GooglereCAPTCHA ialah alat yang digunakan secara meluas untuk pengesahan manusia-komputer Konsepnya telah berakar umbi dalam hati orang ramai, malah kehadirannya boleh dilihat di banyak tapak web yang kami gunakan setiap hari. Dalam artikel ini, kami akan meneroka cara menggunakan GooglereCAPTCHA untuk pengesahan dalam PHP

Dengan perkembangan zaman, kami memberi lebih banyak perhatian kepada pengesahan data, terutamanya pengesahan input pengguna. Untuk pengesahan bahasa, cara menentukan dengan tepat sama ada input adalah semua aksara Cina telah menjadi isu penting. Dalam golang, kita boleh menggunakan pakej unicode dan pakej regexp untuk mencapai keperluan ini. 1. Pakej Unicode Pakej unicode menyediakan satu siri sokongan teras untuk unicode. Kita boleh menggunakan fungsi dalam pakej ini untuk menentukan dengan tepat sama ada sesuatu aksara ialah aksara Cina.
