Kode verifikasi ASP.net (C#)
Penulis:Eve Cole
Waktu Pembaruan:2009-07-01 15:48:32
Kode Validasi kelas publik : System.Web.UI.Page
{
private void Page_Load(pengirim objek, System.EventArgs e)
{
ini.CreateCheckCodeImage(GenerateCheckCode());
}
#region kode yang dihasilkan perancang formulir web
ganti void OnInit yang dilindungi (EventArgs e)
{
//
// CODEGEN: Panggilan ini diperlukan oleh perancang formulir web asp.NET.
//
Inisialisasi Komponen();
base.OnInit(e);
}
///
/// Desainer mendukung metode yang diperlukan - jangan gunakan editor kode untuk memodifikasi
/// Isi dari metode ini.
///
kekosongan pribadi InitializeComponent()
{
this.Load += Sistem baru.EventHandler(ini.Page_Load);
}
#wilayah akhir
string pribadi HasilkanCheckCode()
{
nomor int;
kode karakter;
string checkCode = String.Kosong;
Sistem.Acak acak = Acak baru();
untuk(int i=0; i<5; i++)
{
angka = acak.Berikutnya();
jika(angka % 2 == 0)
kode = (char)('0' + (char)(angka % 10));
kalau tidak
kode = (char)('A' + (char)(angka % 26));
checkCode += kode.ToString();
}
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
kembalikan Kode Periksa;
}
kekosongan pribadi CreateCheckCodeImage (string checkCode)
{
if(checkCode == null || checkCode.Trim() == String.Kosong)
kembali;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Grafik g = Grafik.FromImage(gambar);
mencoba
{
//hasilkan generator acak
Acak acak = baru Acak();
//Menghapus warna latar belakang gambar
g.Jelas(Warna.Putih);
//Gambar garis kebisingan latar belakang gambar
untuk(int i=0; i<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(Warna.Perak), 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(persegi panjang baru(0, 0, gambar.Lebar, gambar.Tinggi), Warna.Biru, Warna.Merah Gelap, 1.2f, benar);
g.DrawString(kode periksa, font, kuas, 2, 2);
//Gambarkan titik noise di latar depan pada gambar
untuk(int i=0; i<100; i++)
{
int x = acak.Berikutnya(gambar.Lebar);
int y = acak.Berikutnya(gambar.Tinggi);
image.SetPixel(x, y, Color.FromArgb(acak.Berikutnya()));
}
//Gambarkan garis batas gambar
g.DrawRectangle(Pena baru(Warna.Perak), 0, 0, gambar.Lebar - 1, gambar.Tinggi - 1);
System.IO.MemoryStream ms = Sistem.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Respon.ClearContent();
Response.ContentType = "gambar/Gif";
Respon.BinaryWrite(ms.ToArray());
}
Akhirnya
{
g.Buang();
gambar.Buang();
}
}
}
http://www.cnblogs.com/niit007/archive/2006/08/13/475506.html