Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 18594|Jawab: 1

[ASP.NET] asp.net prinsip dan kode pembuatan captcha gambar

[Salin tautan]
Diposting pada 02/04/2015 10.26.51 | | |
menggunakan Sistem;
menggunakan System.Data;
menggunakan System.Configuration;
menggunakan System.Collections;
menggunakan System.Web;
menggunakan System.Web.Security;
menggunakan System.Web.UI;
menggunakan System.Web.UI.WebControls;
menggunakan System.Web.UI.WebControls.WebParts;
menggunakan System.Web.UI.HtmlControls;
menggunakan System.Drawing.Design;
menggunakan System.Drawing;
kode gambar kelas parsial publik : System.Web.UI.Page
{
void yang dilindungi Page_Load(pengirim objek, EventArgs e)
{
ini. CreateCheckCodeImage(RndNum());

}

string pribadi RndNum()
{
nomor int;
kode char;
string checkCode = String.Empty;

System.Random random = baru Acak();

untuk (int i = 0; saya < 4; i++)
{
angka = acak. Berikutnya();
if (angka % 2 == 0)
kode = (char)('0' + (char)(number % 10));
yang lain
kode = (char)('A' + (char)(angka % 26));
kode checkCode +=. ToString();
}
Response.Cookies.Add(HttpCookie baru("yzmcode", checkCode));
mengembalikan kode cek;
}
void pribadi CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
kembali;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Grafik g = Grafik.DariGambar(gambar);
Coba
{
//生成随机生成器
Acak acak = Acak baru ();
//清空图片背景色
g.Clear (Warna.Putih);
//画图片的背景噪音线
untuk (int i = 0; saya < 25; i++)
{
int x1 = acak. Berikutnya (gambar. Lebar);
int x2 = acak. Berikutnya (gambar. Lebar);
int y1 = acak. Berikutnya (gambar. Tinggi);
int y2 = acak. Berikutnya (gambar. Tinggi);
g.DrawLine(Pena baru (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. Lebar, gambar. Tinggi), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(periksaKode, font, kuas, 2, 2);
//画图片的前景噪音点
untuk (int i = 0; saya < 100; i++)
{
int x = acak. Berikutnya (gambar. Lebar);
int y = acak. Berikutnya (gambar. Tinggi);
gambar. SetPixel(x, y, Color.FromArgb(acak. Berikutnya()));
}
//画图片的边框线
g.DrawRectangle(Pena baru(Color.Silver), 0, 0, gambar. Lebar - 1, gambar. Tinggi - 1);
System.IO.MemoryStream ms = System.IO.MemoryStream baru();
gambar. Simpan (ms, System.Drawing.Imaging.ImageFormat.Gif);
Tanggapan.JelasKonten();
Response.ContentType = "image/Gif";
Tanggapan.BinaryWrite(ms. ToArray());
}
akhirnya
{
g.Buang();
gambar. Buang ();
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="ChangeCode" runat="server" text="Tidak dapat melihat dengan jelas? Ubah kode verifikasi" />
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码
Tambahkan ke
Anda tidak perlu menulis kode apa pun, klik "Tidak dapat melihat dengan jelas?" Mengubah kode verifikasi" untuk menyegarkan kode verifikasi nanti
void yang dilindungi ChangeCode_Click(pengirim objek, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
void yang dilindungi Button1_Click(pengirim objek, EventArgs e)
{
if (String.Compare(Request.Cookies["yzmcode"]. Nilai, a.Teks, true) != 0)
{
Response.Write("<scrip去掉t>alert('Kesalahan CAPTCHA!')"</scrip去掉t>);
}
yang lain
{ Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}




Mantan:IE mematikan eksekusi perintah jarak jauh
Depan:asp.net menerapkan cookie untuk menyimpan nilai
Diposting pada 04/04/2015 10.58.42 |
Saya sudah bisa menggunakannya
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com