Yandex SmartCaptcha для .NET
Данный проект не является официальной библиотекой Yandex Cloud
Зависимости
Refit
Проект YandexSmartCaptcha.AspNetCore содержит интерфейс ISmartCaptchaApi для использования с библиотекой Refit. Refit — проект с открытым исходным кодом для типобезопасносного обращения к конечным точкам REST, предоставленным Yandex SmartCaptcha.
Если вы не хотите использовать Refit, вы можете создать собственную реализация интерфейса ISmartCaptchaApi
или использовать SmartCaptcha без этого проекта.
Использование в ASP.NET Core
1) Настройки
Конфигурация представления в виде класса SmartCaptchaOptions
. Некоторые значения предзаданы текущими значениями по умолчанию Yandex SmartCaptcha. SiteKey и ServerKey должны быть заданы для работы.
Самым лёгким способом является использование настроек .NET Core через appsettings.json
"SmartCaptcha": {
"SiteKey": "", // Заполните поля вашей парой ключей
"ServerKey": ""
}
и регистрация через AddSmartCaptcha
, которая является частью YandexSmartCaptcha.AspNetCore
.
public void ConfigureServices(IServiceCollection services)
{
// Yandex SmartCaptcha
services.AddSmartCaptcha(Configuration.GetSection("SmartCaptcha"));
...
2) Регистрация Model Binder
В настоящее время библиотека ASP.NET core даёт возможность автоматизировать интеграцию SmartCaptcha. Для этих целей применяется ModelBinder, которая используется если SmartCaptchaVerifyResponse
является одним из передаваемых аргументов в action.
Вы должны зарегистрировать Model Binder
public void ConfigureServices(IServiceCollection services)
{
// Yandex SmartCaptcha
services.AddSmartCaptcha(Configuration.GetSection("SmartCaptcha"));
// Mvc
services.AddControllersWithViews(mvcOptions =>
// добавление model binder
mvcOptions.AddSmartCaptchaModelBinder());
}
И ваш Action:
public class HomeController : Controller
{
[HttpGet, Route("")]
public IActionResult Index()
{
return View(new IndexViewModel());
}
[HttpPost, Route("")]
public IActionResult Index(SmartCaptchaVerifyResponse smartCaptcha)
{
return View(new IndexViewModel(smartCaptcha));
}
}
Лицензия
Данную программу разрешено использовать в соответствии с ст. 1273 ГК РФ.
Описание
Неофициальная библиотека для использования сервиса SmartCaptcha от Яндекса в фреймворке Asp.Net