χρησιμοποιώντας το Σύστημα. χρησιμοποιώντας το System.Data. χρησιμοποιώντας το System.Configuration. χρησιμοποιώντας το System.Collections. χρησιμοποιώντας το System.Web. χρησιμοποιώντας το System.Web.Security. χρησιμοποιώντας το System.Web.UI. χρησιμοποιώντας το System.Web.UI.WebControls. χρησιμοποιώντας το System.Web.UI.WebControls.WebParts. χρησιμοποιώντας το System.Web.UI.HtmlControls. χρησιμοποιώντας System.Drawing.Design? χρησιμοποιώντας το System.Drawing. Κωδικός εικόνας δημόσιας μερικής κλάσης : System.Web.UI.Page
{ προστατευμένο void Page_Load(αποστολέας αντικειμένου, EventArgs e)
{ αυτό. CreateCheckCodeImage(RndNum());
}
ιδιωτική συμβολοσειρά RndNum()
{ αριθμός int; κωδικός χαρακτήρων; string checkCode = String.Empty;
System.Random random = νέο Random();
για (int i = 0; i < 4; i++)
{ αριθμός = τυχαίος. Επόμενο(); if (αριθμός % 2 == 0) κωδικός = (char)('0' + (char)(αριθμός % 10)); αλλιώς κωδικός = (char)('A' + (char)(αριθμός % 26)); checkCode += κωδικός. ToString();
} Response.Cookies.Add(νέο HttpCookie("yzmcode", checkCode)); κωδικός ελέγχου επιστροφής;
} ιδιωτικό κενό CreateCheckCodeImage(string checkCodeCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) επιστροφή; System.Drawing.Bitmap image = νέο System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Γραφικά g = Graphics.FromImage(εικόνα); Δοκιμάστε
{
//生成随机生成器 Τυχαίο τυχαίο = νέο Random();
//清空图片背景色 ζ. Διαυγές (Χρώμα.Λευκό);
//画图片的背景噪音线 για (int i = 0; Ι < 25; i++)
{ int x1 = τυχαίο. Επόμενο(εικόνα. Πλάτος); int x2 = τυχαίο. Επόμενο(εικόνα. Πλάτος); int y1 = τυχαίο. Επόμενο(εικόνα. Ύψος); int y2 = τυχαίο. Επόμενο(εικόνα. Ύψος); ζ.DrawLine (νέο στυλό (Color.Silver), x1, y1, x2, y2).
}
Γραμματοσειρά γραμματοσειρά = 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. Πλάτος, εικόνα. Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(κωδικός ελέγχου, γραμματοσειρά, πινέλο, 2, 2);
//画图片的前景噪音点 για (int i = 0; i < 100; i++)
{ int x = τυχαίο. Επόμενο(εικόνα. Πλάτος); int y = τυχαίο. Επόμενο(εικόνα. Ύψος); εικόνα. SetPixel(x, y, Color.FromArgb(τυχαία. Next()));
}
//画图片的边框线 ζ.DrawRectangle(νέο στυλό (Color.Silver), 0, 0, εικόνα. Πλάτος - 1, εικόνα. Ύψος - 1); System.IO.MemoryStream ms = νέο System.IO.MemoryStream(); εικόνα. Αποθήκευση(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "εικόνα/Gif"; Response.BinaryWrite(ms. ToArray());
} τελικά
{ ζ.Απόρριψη(); εικόνα. Απόρριψη();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="διακομιστής" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Δεν μπορείτε να δείτε καθαρά; Αλλάξτε τον κωδικό επαλήθευσης" /> <asp:Αναγνωριστικό κουμπιού="Κουμπί1" runat="διακομιστής" Text="Κουμπί" /></div>
//ogin.aspx.cs中的代码 Προσθήκη σε Δεν χρειάζεται να γράψετε κανέναν κωδικό, κάντε κλικ στο "Δεν μπορείτε να δείτε καθαρά;" Αλλάξτε τον κωδικό επαλήθευσης" για να ανανεώσετε τον κωδικό επαλήθευσης αργότερα προστατευμένο void ChangeCode_Click(αποστολέας αντικειμένου, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 προστατευμένο void Button1_Click(αποστολέας αντικειμένου, EventArgs e)
{ αν (String.Compare(Request.Cookies["yzmcode"]. Τιμή, α.Κείμενο, αληθές) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} αλλιώς { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|