استفاده از **Captcha** در فرمها یکی از روشهای مؤثر برای جلوگیری از اسپم و اطمینان از این است که کاربر واقعی است. در اینجا روش پیادهسازی **Captcha** با استفاده از ASP.NET Web Forms را بررسی میکنیم. ما از **Google reCAPTCHA** استفاده خواهیم کرد که یکی از معروفترین و محبوبترین راهحلها برای این کار است.
### مراحل پیادهسازی
#### 1. ثبتنام برای reCAPTCHA
1. به وبسایت [Google reCAPTCHA](https://www.google.com/recaptcha) بروید.
2. با حساب Google خود وارد شوید و یک پروژه جدید ثبت کنید.
3. پس از ثبتنام، دو کلید دریافت خواهید کرد: **Site Key** و **Secret Key**. این کلیدها برای استفاده از reCAPTCHA در برنامه شما ضروری هستند.
#### 2. ایجاد صفحه ASP.NET Web Form
حالا یک صفحه جدید به نام `Contact.aspx` ایجاد کرده و کد زیر را به آن اضافه کنید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="YourNamespace.Contact" %>
Contact Us
```
### 3. کد پشت (`Code-Behind`)
در فایل `Contact.aspx.cs`، کد زیر را اضافه کنید:
```csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.UI;
namespace YourNamespace
{
public partial class Contact : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected async void btnSubmit_Click(object sender, EventArgs e)
{
var recaptchaResponse = Request.Form["g-recaptcha-response"];
var isCaptchaValid = await ValidateCaptcha(recaptchaResponse);
if (isCaptchaValid)
{
// عملیات ارسال پیام
lblMessage.Text = "Your message has been sent successfully.";
}
else
{
lblMessage.Text = "Captcha validation failed. Please try again.";
}
}
private async Task ValidateCaptcha(string recaptchaResponse)
{
const string secretKey = "YOUR_SECRET_KEY";
using (var client = new HttpClient())
{
var result = await client.PostAsync($"https://www.google.com/recaptcha/api/siteverify?secret={secretKey}&response={recaptchaResponse}", null);
var jsonResult = await result.Content.ReadAsStringAsync();
dynamic jsonData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonResult);
return jsonData.success == "true";
}
}
}
}
```
### توضیحات کد
1. **جایگذاری Site Key**: در بخش `
`، `YOUR_SITE_KEY` را با **Site Key** خود جایگزین کنید.
2. **تأیید Captcha**: در متد `btnSubmit_Click`، مقدار Captcha از درخواست فرم دریافت میشود و به متد `ValidateCaptcha` ارسال میگردد. این متد به Google ارسال میشود تا تأیید کند که Captcha معتبر است.
3. **عملیات ارسال پیام**: اگر Captcha معتبر باشد، میتوانید عملیات مربوط به ارسال پیام یا هر کاری که لازم است را انجام دهید.
4. **استفاده از HttpClient**: از `HttpClient` برای ارسال درخواست به Google استفاده میشود و پاسخ آن برای تأیید Captcha بررسی میشود.
### نتیجهگیری
با این پیادهسازی، شما میتوانید از **Captcha** برای جلوگیری از اسپم در فرمهای خود در ASP.NET Web Forms استفاده کنید. این روش امنیت بیشتری را برای فرمهای شما فراهم میکند و از ارسال درخواستهای غیرمجاز جلوگیری میکند.
اگر سوال یا نیاز به توضیحات بیشتری دارید، خوشحال میشوم کمک کنم!
| صفحه قابل مشاهده:
دانلود کد استفاده از Captcha برای جلوگیری از اسپم در فرمها با ASP.NET Web Form میباشد