Login formunda spam-botları engellemek için captcha kullanımı daha önce görmüştük. reCaptcha kullanımı linkine tıklayarak ilgili makaleye göz gezdirebilirsiniz. Şimdi de kullanıcı şifresi üç kere yanlış girildikten sonra captca doğrulmasının kullanılmasını görelim.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>
Code Behined
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblResult.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
int c=1;
if (TextBox1.Text == "sharad" && TextBox2.Text == "gupta")
{
Response.Redirect("a.aspx");
}
else
{
lblResult.Visible = true;
lblResult.Text = "Kullanıcı adı veya şifre hatalı";
Session["counter"] = Convert.ToInt32(Session["counter"] )+ c;
if (Convert.ToInt32(Session["counter"]) > 5)
{
RecaptchaControl1.Visible = true;
RecaptchaControl1.Validate();
if (RecaptchaControl1.IsValid)
{
lblResult.Text = "OKEY"; return;
}
else
return;
}
}
}
}
Biz burada değerimizi Session ile sakladık. Dilerseniz alternatif yöntemleri kullanabilirsiniz. Aşağıdaki linkte viewstate kullanımı bu alternatiflere bir örnektir.
POSTBACK ESNASINDA DEĞERLER NASIL SAKLANIR ? VİEWSTATE NEDİR ?
Hiç yorum yok:
Yorum Gönder