Перейти к содержанию

Генерация кода Captcha в ASP.NET Core

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


В этой статье мы рассмотрим процесс генерации кода Captcha в ASP.NET Core приложении, для формы обратной связи.

Если вы хотите использовать код Captcha для защиты вашего сайта от спама, есть несколько вариантов, таких как Google ReCaptcha и captcha.com. Оба они могут быть интегрированы в приложения ASP.NET Core. Однако по каким-то причинам вы все же можете захотеть сгенерировать код captcha самостоятельно. В этом уроке, я расскажу вам, как генерировать и использовать код captcha в последней версии ASP.NET Core.

Генерация кода Captcha в ASP.NET Core

Как работает captcha

Реализация кода captcha в ASP.NET Core 6

Создание контактной формы

Как работает captcha

Простая captcha — это генерация случайного кода (цифр и букв), сохранение кода в сессии, а также создание изображения для показа на веб-странице. Когда пользователь отправляет содержимое обратно на сервер, сервер сравнивает введенную пользователем captcha со значением, сохраненным в сессии, чтобы проверить, правильно ли пользователь ввел код captcha. Рабочий процесс объясняется на рисунке ниже:

как работает captcha

Рассмотрим образец captcha которую мы сделаем:

образец captcha asp.net core

Реализация кода captcha в ASP.NET Core 6

Разобравшись, как работает код captcha, перейдем к ее реализации. Я ожидаю от вас знания концепций объектно-ориентированного программирования на C#. Я предполагаю, что вы также знаете концепции .NET Core, особенно паттерн MVC.

Откройте Visual Studio 2022.

Создайте проект «Asp.Net Core Web Application(.Net Core)» с шаблоном MVC Template. В графе “Authentication type”, оставляем значение None.

  1. Мы будем использовать классы из пространства имен System.Drawing.Imaging, поэтому нам также необходимо установить пакет NuGet:

  1. Поскольку captcha полагается на хранение сессий, нам также необходимо включить поддержку сессий в ASP.NET Core в файле Program.cs:

3. В папке Model, создадим класс CaptchaResult для представления информации о captcha:

4. Создадим папку Data, а в нее добавим новый класс Captcha для генерации и проверки captcha:

Буквы содержат не все цифры и английский алфавит, потому что некоторые символы трудно различимы. Я закомментировал код “Безье” в функции DrawDisorderLine(), потому как изображение очень маленькое, будет трудно увидеть символы, если на нем есть линии Безье.

  1. Теперь в контроллере HomeController, создайте действие для возврата изображения captcha:

Попробуем получить доступ к этому действию, мы должны получить изображение captcha:

вывод captcha asp.net core

  1. Captcha настроена и готова к работе. В качестве примера, сделаем контактную форму для сайта с использованием captcha.

Создание контактной формы

  1. Установим зависимости, необходимые для отправки сообщения:
  • MailKit
  • MimeKit

mailkit asp.net core

  1. После установки библиотеки Mailkit, в папке Models, создадим новый класс SendMessage:

Свойство CaptchaCode будет использоваться для отправки содержимого captcha на сервер.

  1. Перейдем к контроллеру HomeController, добавим действия Email, со следующим содержимым:

Не забудьте изменить smtp сервер, email и пароль. Всю подробную информацию, про отправку письма, читайте в статье — «Отправка Email в Asp.Net Core«.

  1. В папку ViewsHome, добавим представление Email.cshtml:

Запустим проект и перейдем по адресу: https://localhost:7221/home/email

contact form with capcha

Проверим работу captcha, введем неверный код:

asp.net core обратная связь с captcha

Теперь введем верный код и выполним отправку письма:

asp.net core content

Вы можете позволить пользователю загружать новое изображение captcha с помощью клика по ней. Для этого, внизу страницы Email.cshtml, добавим библиотеку JQuery:

И следующий код:

На этом статья «Генерация кода Captcha в ASP.NET Core», подошла к концу, надеюсь вам было интересно.

Поделитесь вашим опытом в комментариях, как вы генерируете код captcha в ASP.NET Core приложениях?

Так же вам может быть интересна предыдущая статья:

Как опубликовать приложение Asp.Net Core

Вы начинающий программист, который хочет изучить все тонкости языка C#?

Пройдите наш тест на 13 вопросов, чтобы узнать, как много вы знаете на самом деле!

C# Braincheck


Вы хотите научится писать код на языке программирования C#?

Создавать различные информационные системы, состоящие из сайтов, мобильных клиентов, десктопных приложений, телеграмм-ботов и т.д.

Переходите к нам на страницу Dijix и ознакомьтесь с условиями обучения, мы специализируемся только на индивидуальных занятиях, как для начинающих, так и для более продвинутых программистов. Вы можете взять как одно занятие для проработки интересующего Вас вопроса, так и несколько, для более плотной работы. Благодаря личному кабинету, каждый студент повысит качество своего обучения, в вашем распоряжении:

  • Доступ к пройденному материалу
  • Тематические статьи
  • Библиотека книг
  • Онлайн тестирование
  • Общение в закрытых группах

https://dijix.com.ua

Живи в своем мире, программируй в нашем.


 

Опубликовано в рубрикеAsp.Net Core
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x