Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 18594|Απάντηση: 1

[ASP.NET] asp.net την αρχή και τον κώδικα δημιουργίας captcha εικόνας

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2/4/2015 10:26:51 π.μ. | | |
χρησιμοποιώντας το Σύστημα.
χρησιμοποιώντας το 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>"; }
}




Προηγούμενος:Ο IE σκοτώνει την απομακρυσμένη εκτέλεση εντολών
Επόμενος:asp.net εφαρμόσετε cookies για να αποθηκεύσετε τιμές
Δημοσιεύτηκε στις 4/4/2015 10:58:42 π.μ. |
Μπορώ ήδη να το χρησιμοποιήσω
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com