تستخدم العديد من صفحات الويب الآن صورًا عشوائية عند تسجيل الدخول، وهي طريقة بسيطة وفعالة لمنع الهجمات الضارة من قبل المتسللين. قرأت بعض المعلومات على الإنترنت اليوم وفهمت مبدأ الإنشاء: احصل على سلسلة عشوائية من العينة، واحفظ السلسلة العشوائية في الجلسة، وقم بتكوين صورة رمز عشوائي في شكل صورة نقطية.
ينجز:
إضافة مساحة الاسم
باستخدام System.Drawing؛
باستخدام System.Drawing.Imaging؛
باستخدام System.Drawing.Drawing2D؛
إنشاء رمز الصفحة
باستخدام النظام؛
باستخدام 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؛
باستخدام System.Drawing.Imaging؛
باستخدام System.Drawing.Drawing2D
الفئة العامة الجزئية getRandImg: System.Web.UI.Page
{
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
{
// إنشاء صور رمز عشوائي
SetValidateCode();
// لا يتم حفظ الصفحة التي تم إنشاؤها في ذاكرة التخزين المؤقت
Response.Cache.SetNoStore();
}
// قم بتعيين رمز التحقق
SetValidateCode () باطلة خاصة
{
// أنشئ صورة نقطية جديدة
الصورة النقطية newBitmap = الصورة النقطية الجديدة (
71،
ثلاثة وعشرين،
PixelFormat.Format32bppArgb
);
// احصل على شاشة الرسم من الصورة النقطية
Graphics g = Graphics.FromImage(newBitmap);
// مولد رقم عشوائي
Random r = new Random();
// امسح شاشة الرسم
g.Clear(Color.White);
// رسم تداخل خط الشاشة
لـ (int i = 0; i < 50; i++)
{
int x1 = r.Next(newBitmap.Width);
int x2 = r.Next(newBitmap.Width);
int y1 = r.Next(newBitmap.Height);
int y2 = r.Next(newBitmap.Height);
g.DrawLine(القلم الجديد(
Color.FromArgb(r.Next()))،
×1,
ص1,
×2,
y2
);
}
// رسم تداخل نقطة الشاشة
لـ (int i = 0; i < 100; i++)
{
int x = r.Next(newBitmap.Width);
int y = r.Next(newBitmap.Height);
newBitmap.SetPixel(
س,
ذ،
Color.FromArgb(r.Next())
);
}
// احصل على سلسلة عشوائية (طولها 5 أرقام)
قيمة السلسلة = GenerateRandom(5);
// قم بتعيين سلسلة عشوائية للجلسة
جلسة ["RandCode"] = القيمة؛
// تحديد نمط خط عرض الصورة
خط الخط = الخط الجديد(
"أريال"،
14,
FontStyle.Bold
);
Random rr = new Random();
int yy = rr.Next(1, 4);
// تحديد سلسلة عشوائية لعرض فرشاة الصورة
فرشاة LinearGradientBrush = LinearGradientBrush جديدة (
مستطيل جديد (0، 0، 71، 23)،
اللون.أحمر،
اللون. أزرق،
1.2f،
حقيقي
);
g.DrawString(value,font,brush,2,yy);
g.DrawRectangle(القلم الجديد(
اللون. فضي)،
0,
0,
70،
إثنان وعشرون
);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
newBitmap.Save(ms, ImageFormat.Gif);
// صورة الإخراج
Response.ClearContent();
Response.ContentType = "image/gif";
Response.BinaryWrite(ms.ToArray());
}
// مجموعة ثابتة
حرف ثابت خاص[] ثابت ={
'0','1','2','3','4','5','6','7','8','9',
'a'،'b'،'c'،'d'،'e'،'f'،'g'،'h'،'i'،'j'،
'k'،'l'،'m'،'n'،'o'،'p'،'q'،'r'،'s'،'t'،
'u','v','w','x','y','z'
};
// إنشاء سلسلة عشوائية
سلسلة ثابتة عامة GenerateRandom(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(36);
Random rd = new Random();
لـ (int i = 0; i < length; i++)
{
newRandom.Append(constant[rd.Next(36)]);
}
إرجاع newRandom.ToString();
}
}
بالنسبة للصفحات التي تستخدم صورًا عشوائية، تتم كتابة عنصر تحكم IMAGE كما يلي:
<asp:Image ID="Image1" ImageUrl="~/getRandImg.aspx" runat="server" />
نموذج التعليمات البرمجية: http://www.cnblogs .com /heekui/archive/2007/01/06/613609.html