MasoudAdmin
سه شنبه 27 تیر 1402, 23:13 عصر
با سلام
در صفحه لاگین وبم کپچا استفاده کردم منتهی تابع کپچا رو در Page_Load هم گذاشتم که وقتی صفحه بار اول لود میشه کپچا هم اجرا بشه. الان مشکلی که دارم وقتی کلید ورود رو می زنم کپچا هم تغییر میکنه و با این مسئله همیشه پیغام میده که کلمه امنیتی صحیح نیست.
این کد ساخت کپچا هست:
private void CreateCaptha()
{
string Captcha = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789";
Random Rand = new Random();
Object Captcha1 = Rand.Next(1, 36);
Object Captcha2 = Rand.Next(1, 36);
Object Captcha3 = Rand.Next(1, 36);
Object Captcha4 = Rand.Next(1, 36);
Object Captcha5 = Rand.Next(1, 36);
Object Captcha6 = Rand.Next(1, 36);
string StrCapcha1 = Captcha.Substring(Convert.ToInt32(Captcha1), 1);
string StrCapcha2 = Captcha.Substring(Convert.ToInt32(Captcha2), 1);
string StrCapcha3 = Captcha.Substring(Convert.ToInt32(Captcha3), 1);
string StrCapcha4 = Captcha.Substring(Convert.ToInt32(Captcha4), 1);
string StrCapcha5 = Captcha.Substring(Convert.ToInt32(Captcha5), 1);
string StrCapcha6 = Captcha.Substring(Convert.ToInt32(Captcha6), 1);
string ResultCaptcha = StrCapcha1 + StrCapcha2 + StrCapcha3 + StrCapcha4 + StrCapcha5 + StrCapcha6;
CaptchaText = ResultCaptcha;
Bitmap SecImage = new Bitmap(Server.MapPath("~/LayoutImage/BackGroundCaptcha.jpg"));
Graphics GrapgImage = Graphics.FromImage(SecImage);
GrapgImage.DrawString(ResultCaptcha.ToString(), new Font("Arial", 20, FontStyle.Strikeout), SystemBrushes.WindowText, new PointF());
SecImage.Save(Server.MapPath("~/LayoutImage/SecurityImage.jpg"));
this.CapchaImage.ImageUrl = "~/LayoutImage/SecurityImage.jpg";
}
protected void Page_Load(object sender, EventArgs e)
{
this.CreateCaptha();
}
اینم تگ کلید ورود:
<asp:Button ID="btnCMELogin" runat="server" Text="ورود" class="btn btn-outline-light btn-lg px-5" type="button" name="btnLogin" OnClick="btnCMELogin_Click"/>
اینم کد کلید ورود:
if(this.txtCapcha.Text.Trim()!=CaptchaText)
{
this.lbMessage.Text = "مقدار ورودی امنیتی اشتباه می باشد";
}
الان چجوری می تونم این مشکل رو رفع کنم؟ به صورتیکه وقتی کلید ورود رو می زنم کپچا مقدارش تغییر نکنه و اگر واقعا اشتباه وارد کرد مقدار جدید بگیره؟
ممنون میشم راهنمایی کنید.
در صفحه لاگین وبم کپچا استفاده کردم منتهی تابع کپچا رو در Page_Load هم گذاشتم که وقتی صفحه بار اول لود میشه کپچا هم اجرا بشه. الان مشکلی که دارم وقتی کلید ورود رو می زنم کپچا هم تغییر میکنه و با این مسئله همیشه پیغام میده که کلمه امنیتی صحیح نیست.
این کد ساخت کپچا هست:
private void CreateCaptha()
{
string Captcha = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789";
Random Rand = new Random();
Object Captcha1 = Rand.Next(1, 36);
Object Captcha2 = Rand.Next(1, 36);
Object Captcha3 = Rand.Next(1, 36);
Object Captcha4 = Rand.Next(1, 36);
Object Captcha5 = Rand.Next(1, 36);
Object Captcha6 = Rand.Next(1, 36);
string StrCapcha1 = Captcha.Substring(Convert.ToInt32(Captcha1), 1);
string StrCapcha2 = Captcha.Substring(Convert.ToInt32(Captcha2), 1);
string StrCapcha3 = Captcha.Substring(Convert.ToInt32(Captcha3), 1);
string StrCapcha4 = Captcha.Substring(Convert.ToInt32(Captcha4), 1);
string StrCapcha5 = Captcha.Substring(Convert.ToInt32(Captcha5), 1);
string StrCapcha6 = Captcha.Substring(Convert.ToInt32(Captcha6), 1);
string ResultCaptcha = StrCapcha1 + StrCapcha2 + StrCapcha3 + StrCapcha4 + StrCapcha5 + StrCapcha6;
CaptchaText = ResultCaptcha;
Bitmap SecImage = new Bitmap(Server.MapPath("~/LayoutImage/BackGroundCaptcha.jpg"));
Graphics GrapgImage = Graphics.FromImage(SecImage);
GrapgImage.DrawString(ResultCaptcha.ToString(), new Font("Arial", 20, FontStyle.Strikeout), SystemBrushes.WindowText, new PointF());
SecImage.Save(Server.MapPath("~/LayoutImage/SecurityImage.jpg"));
this.CapchaImage.ImageUrl = "~/LayoutImage/SecurityImage.jpg";
}
protected void Page_Load(object sender, EventArgs e)
{
this.CreateCaptha();
}
اینم تگ کلید ورود:
<asp:Button ID="btnCMELogin" runat="server" Text="ورود" class="btn btn-outline-light btn-lg px-5" type="button" name="btnLogin" OnClick="btnCMELogin_Click"/>
اینم کد کلید ورود:
if(this.txtCapcha.Text.Trim()!=CaptchaText)
{
this.lbMessage.Text = "مقدار ورودی امنیتی اشتباه می باشد";
}
الان چجوری می تونم این مشکل رو رفع کنم؟ به صورتیکه وقتی کلید ورود رو می زنم کپچا مقدارش تغییر نکنه و اگر واقعا اشتباه وارد کرد مقدار جدید بگیره؟
ممنون میشم راهنمایی کنید.